Переменная - это имя, под которым хранится значение. Значение может использоваться много раз, а при необходимости - изменяться. В JavaScript для объявления переменных чаще всего используют let и const.
Зачем вообще нужны переменные
Без переменных код быстро превращается в набор повторов. С переменными проще:
- хранить данные (числа, строки, объекты)
- переиспользовать значения
- делать вычисления и сохранять результат
- читать код как “историю”, а не как случайный набор выражений
Пример без переменных:
(1200 - (1200 * 15) / 100) + " руб."
Тот же смысл с переменными:
const price = 1200;
const discount = 15;
const finalPrice = price - (price * discount) / 100;
finalPrice + " руб."
let - переменная, которую можно переназначать
let объявляет переменную, значение которой можно менять (переназначать).
let count = 0;
count = count + 1;
count = count + 1;
count; // 2
Переназначение - это когда переменной присваивается новое значение через =.
let city = "Berlin";
city = "Hamburg";
const - переменная, которую нельзя переназначать
const объявляет переменную, которую нельзя переназначить.
const pi = 3.14159;
pi = 3; // TypeError: Assignment to constant variable
Идея const - значение не должно “случайно” поменяться. Это повышает предсказуемость кода.
Важное уточнение про объекты и массивы
const запрещает переназначение переменной, но не запрещает менять содержимое объекта или массива.
const user = { name: "Jack", role: "admin" };
user.role = "editor"; // допустимо
const list = [1, 2, 3];
list.push(4); // допустимо
Запрещено именно вот это:
const user = { name: "Jack" };
user = { name: "John" }; // нельзя переназначить
Почему обычно начинают с const
Обычно выбирают такой принцип:
- по умолчанию использовать
const - переходить на
let, только когда нужно переназначение
Причины:
- меньше случайных изменений
- проще читать - видно, где данные стабильны
- удобнее поддерживать код (особенно через время)
Пример, где const подходит лучше:
const year = 2026;
const title = "Как выучить JavaScript";
Пример, где без let не обойтись:
let total = 0;
total = total + 10;
total = total + 5;
Объявление и использование - несколько правил
1) Нельзя использовать переменную до объявления
С let и const переменная существует в “временной мертвой зоне” (TDZ) до строки объявления. Это значит, что обратиться к ней раньше нельзя.
console.log(value); // ReferenceError
const value = 10;
Такой порядок нужно исправлять: сначала объявление, потом использование.
2) const требует начального значения
const нельзя объявить “пустой” и присвоить позже.
const token; // SyntaxError
token = "abc";
Нужно сразу задать значение:
const token = "abc";
Если значение появится позже, чаще всего нужен let:
let token;
token = "abc";
3) Имена переменных должны быть понятными
Ориентир - название отвечает на вопрос “что здесь лежит”.
Хорошо:
const userName = "Jack";
const maxRetries = 3;
const isActive = true;
Плохо (неясно, что значит):
const a = 10;
const data1 = "x";
Типичные ошибки
Ошибка - попытка поменять const
const count = 1;
count = 2; // TypeError
Решение - если переназначение действительно нужно, использовать let:
let count = 1;
count = 2;
Ошибка - ожидание, что const “замораживает” объект
const settings = { theme: "light" };
settings.theme = "dark"; // это работает
Если нужна реальная “заморозка”, используется Object.freeze, но это отдельная тема и применяется не всегда.
Когда что использовать - быстрое правило
const- значение не должно переназначатьсяlet- значение будет меняться со временем (счетчик, накопление суммы, переключение состояния)
Короткий итог
let и const решают одну задачу - хранить значения, но с разной степенью “защиты”. В большинстве случаев удобно начинать с const и переходить на let только там, где без переназначения не обойтись.