Что такое const?
Основы языка
`const` — способ объявить переменную с блочной областью видимости, ссылку на которую нельзя переприсвоить. Значение обязательно задаётся при объявлении.
Свойства const
- Блочная область — видна только внутри
{}. - Нельзя переприсваивать — повторное присваивание кинет
TypeError. - Обязательная инициализация —
const x;— ошибка. - TDZ — до строки объявления обращение кинет
ReferenceError.
const PI = 3.14;
PI = 3; // TypeError: Assignment to constant variableНеизменяемой остаётся только ссылка
const защищает привязку, а не содержимое объекта:
const user = { name: 'Ann' };
user.name = 'Bob'; // ок — меняем поле
user.age = 25; // ок — добавляем поле
user = {}; // TypeError — меняем ссылку
const arr = [1, 2];
arr.push(3); // ок — [1, 2, 3]Для настоящей неизменяемости — Object.freeze(obj).
Когда использовать
const — выбор по умолчанию. Он сигнализирует, что переменная не будет переприсвоена, и делает код предсказуемее.
Коротко для собеседования
const — блочная переменная без переприсваивания ссылки, требует инициализации, имеет TDZ. Защищает ссылку, но не содержимое объекта (поля можно менять). Используется по умолчанию.