Кратко
Переменная — это именованная «коробка» для хранения данных. Вы даёте коробке имя и кладёте внутрь значение. const запрещает переприсваивание имени — нельзя положить другое значение или ссылку (если значение — объект или массив, его внутреннее содержимое менять можно — об этом позже). let позволяет менять содержимое.
Подробно
Представьте, что у вас есть множество коробок. На каждой коробке — наклейка с именем (это имя переменной), а внутри — что-то (это значение).
let age = 25; // Коробка с наклейкой «age», внутри лежит число 25
JavaScript предоставляет три способа объявить переменную:
- const — «константа»: переприсвоить имя нельзя — нельзя положить другую ссылку/значение. По умолчанию для всего. (Если значение — объект или массив, его внутреннее содержимое всё ещё можно менять — подробнее в уроке об объектах.)
- let — «переменная»: содержимое можно менять. Для счётчиков, флагов, промежуточных значений.
- var — «старый способ»: работает, но имеет подводные камни с областью видимости. Почти никогда не используется в современном коде.
Правило: начинайте с const. Если понадобится менять — переключайтесь на let. Забудьте о var до тех пор, пока не столкнётесь с ним в чужом коде.
Именование переменных:
- camelCase — рекомендуемый стиль: userName, maxRetries, isActive
- Булевы переменные начинаются с is/has/can
- Массивы — во множественном числе: items
- Нельзя начинать имя с цифры, использовать дефис или зарезервированные слова
Ментальная модель
Переменная — это коробка с наклейкой. Наклейка — это имя (identifier). Содержимое — это значение (value). const = коробка с замком (нельзя положить другое). let = коробка без замка (можно менять содержимое). Модель коробки помогает начать — позже, в уроке об объектах, вы увидите, что const фиксирует саму привязку имени, а не содержимое: свойства объекта, созданного через const, менять можно.
Примеры
**Самый простой:**
const name = 'Анна';
let age = 25;
console.log(name); // Анна
console.log(age); // 25Создаём две переменные: const для имени (не будет меняться), let для возраста (может измениться).
**Простой:**
let temperature = 20;
console.log(temperature); // 20
temperature = 25;
console.log(temperature); // 25
// const MAX = 100;
// MAX = 200; // Ошибка! TypeErrorlet позволяет менять значение, const — нет. Если попробовать переприсвоить const, JavaScript выбросит ошибку.
**Реальный пример:**
const PI = 3.14159;
let radius = 5;
let area = PI * radius * radius;
console.log(`Площадь круга: ${area}`); // 78.53975PI не меняется (это математическая константа), radius может меняться (размер круга), area вычисляется из них.
Частые ошибки
**Неправильно:** const означает «неизменяемое значение»
**Почему:** const запрещает переприсваивание, но объекты и массивы внутри могут меняться (push, изменение свойств).
**Правильно:** const запрещает переприсваивание binding. Объект/массив внутри может быть изменён.
**Неправильно:** Использование переменной до объявления
**Почему:** JavaScript выполняет код сверху вниз. Переменная доступна только после строки с объявлением.
**Правильно:** Объявляйте переменные перед использованием.
**Неправильно:** Именование переменных через дефис или пробел
**Почему:** JavaScript не понимает my-name как имя переменной — он видит минус и пытается вычесть.
**Правильно:** Используйте camelCase: myName, а не my-name.
Важно запомнить
- Начинайте с const, переключайтесь на let если нужно менять
- var — устарел, избегайте его в новом коде
- camelCase — рекомендуемый стиль именования
- const не делает значение неизменяемым — запрещает только переприсваивание
- Переменные доступны только после объявления
Связь
Назад: Вы узнали, что такое JavaScript (J1), — теперь вы умеете хранить данные.
Вперёд: Следующий урок (J3) разбирает, какие типы значений можно хранить: числа, строки, булевы значения и другие.