JS Core

Переменные и значения

Научиться сохранять данные в переменные с помощью let и const, понимая разницу между ними и правила именования.

Начальный (Beginner)
Нужно знать:Что такое JavaScript

Кратко

Переменная — это именованная «коробка» для хранения данных. Вы даёте коробке имя и кладёте внутрь значение. 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, менять можно.


Примеры

**Самый простой:**

javascript
const name = 'Анна';
let age = 25;
console.log(name); // Анна
console.log(age);  // 25

Создаём две переменные: const для имени (не будет меняться), let для возраста (может измениться).

**Простой:**

javascript
let temperature = 20;
console.log(temperature); // 20

temperature = 25;
console.log(temperature); // 25

// const MAX = 100;
// MAX = 200; // Ошибка! TypeError

let позволяет менять значение, const — нет. Если попробовать переприсвоить const, JavaScript выбросит ошибку.

**Реальный пример:**

javascript
const PI = 3.14159;
let radius = 5;
let area = PI * radius * radius;

console.log(`Площадь круга: ${area}`); // 78.53975

PI не меняется (это математическая константа), radius может меняться (размер круга), area вычисляется из них.


Частые ошибки

**Неправильно:** const означает «неизменяемое значение»

**Почему:** const запрещает переприсваивание, но объекты и массивы внутри могут меняться (push, изменение свойств).

**Правильно:** const запрещает переприсваивание binding. Объект/массив внутри может быть изменён.

**Неправильно:** Использование переменной до объявления

**Почему:** JavaScript выполняет код сверху вниз. Переменная доступна только после строки с объявлением.

**Правильно:** Объявляйте переменные перед использованием.

**Неправильно:** Именование переменных через дефис или пробел

**Почему:** JavaScript не понимает my-name как имя переменной — он видит минус и пытается вычесть.

**Правильно:** Используйте camelCase: myName, а не my-name.


Важно запомнить

  • Начинайте с const, переключайтесь на let если нужно менять
  • var — устарел, избегайте его в новом коде
  • camelCase — рекомендуемый стиль именования
  • const не делает значение неизменяемым — запрещает только переприсваивание
  • Переменные доступны только после объявления

Связь

Назад: Вы узнали, что такое JavaScript (J1), — теперь вы умеете хранить данные.

Вперёд: Следующий урок (J3) разбирает, какие типы значений можно хранить: числа, строки, булевы значения и другие.

Материалы курса JS Core — PROlab Academy.