Переменные и константы в JS

В этом уроке вы познакомитесь с переменными и константами в JavaScript. Вы научитесь их объявлять, инициализировать и использовать.

Переменная — это хранилище, в котором можно держать данные. Переменные похожи на именновые контейнеры — имена можно использовать для доступа к хранимым данным.  

В коде ниже переменная num — это контейнер, в котором хранится значение 5. Чтобы использовать или изменить значение переменной num, понадобится ее имя. 

let num = 5;

Как объявить переменную

Прежде чем использовать переменную, ее необходимо создать или иначе — объявить. В JavaScript для этого используют два ключевых слова: var и let. Оба они создают переменную. 

var x;   // создаем переменную x 
let y;   // создаем переменную y

В чем разница между var и let

Разница между объявлением переменной через var и let существует. Если сейчас она не очень понятна, не переживайте: мы обсудим эту тему позже на более глубоком уровне. 

var let
используется в более старых версиях JavaScript новый способ объявляения переменных начиная с ES6 (ES2015) 
создает переменную функциональной области видимости создает переменную блочной области видимости

Примечание. Для объявления переменных рекомендуется использовать let. Оно появилось в ES6 (ES2015) и сегодня поддерживается всеми актуальными браузерами.

Как инициализировать переменную

После создания переменной в нее можно поместить данные — этот процесс называется инициализацией переменной. Для инициализации используют оператор присваивания =.

let x;
x = 5;

В этом коде мы присвоили значение 5 переменной x.

Переменную можно инициализировать и прямо при объявлении:

let x = 5;
let y = 6;

В JavaScript можно объявлять и инициализировать сразу несколько переменных на одной строке:

let x = 5, y = 6, z = 7;

Если переменную не инициализировать, в ней будет хранится значение undefined. Подробнее о том, что это значит, мы расскажем в будущих статьях. 

let x; 
console.log(x); // undefined

В этом примере мы объявляем переменную x, но не инициализируем ее. Если вывести значение переменной x на экран, мы увидим undefined.

Как изменить значение переменной

Значение, которое хранится в переменной, можно изменить. 

// присваиваем x значение 5
let x = 5; 
console.log(x); // 5

// меняем значение x на 3
x = 3; 
console.log(x); // 3

Переменная называется так именно потому, что ее значение может меняться.

Правила именования переменных

1. Имена переменных должны начинаться или с буквы, или с подчеркивания _, или со знака доллара $

// правильные имена
let a = 'hello';
let _a = 'hello';
let $a = 'hello';

2. Имена переменных не могут начинаться с цифры. 

// неправильное имя
let 1a = 'hello'; // эта строчка выдаст ошибку

3. JavaScript чувствителен к регистру, поэтому y и Y — разные переменные.

let y = "hi";
let Y = 5;

console.log(y); // hi
console.log(Y); // 5

4. Нельзя использовать ключевые слова в качестве имени переменной. 

// неправильное имя
let new = 5; // Ошибка! new — ключевое слово.

Совет 1. Вы можете называть переменные как угодно, но лучше стараться давать переменным имя, которое описывает данные, которые в ней хранятся. Если вы используете переменную для хранения количества яблок, лучше использовать apples или numberOfApples, а не просто x или n.

Совет 2. В JavaScript имена переменных обычно пишут в camelCase, если они состоят из нескольких слов. Например, firstName, annualSalary и т.д.

Константы в JS

Для создания констант в JavaScript используют ключевое слово const.

const x = 5;

Константы инициализируется сразу после объявления. Менять значение константы позже уже нельзя.

const x = 5;
x = 10;  // Ошибка! константу нельзя изменять.

Примечание. const, как и let, появилось в JS в ES6 (ES2015) и сегодня поддерживается всеми актуальными браузерами.

Совет. Константы стоит использовать, если вы уверены, что значение переменной не будет меняться на протяжении всей программы. 

Теперь, когда вы знаете о переменных и константах, приступим к изучению типов данных, которые они могут хранить.

Проверьте себя
1. В чём разница между ключевыми словами var и let при объявлении переменных?
Avar объявляет константы, а let — переменные
Blet работает только в Node.js, а var — только в браузере
CРазницы нет, это полные синонимы
Dvar — старый способ с функциональной областью видимости, а let появился в ES6 и создаёт переменную блочной области видимости
2. Какое значение будет храниться в переменной, если её объявить, но не инициализировать?
A0
Bnull
Cundefined
DПустая строка
3. Что произойдёт при попытке изменить значение константы: const x = 5; x = 10;?
AПроизойдёт ошибка — значение константы менять нельзя
BКонстанта получит новое значение 10
CСоздастся новая константа x
DЗначение останется 5, и код продолжит работу без ошибок