Сравни способы объявления переменных в JavaScript и объясни, когда выбирать каждый вариант.
Основы языка
Переменные в JavaScript объявляют через `const`, `let` и `var`. Современный подход: const по умолчанию, let при переприсваивании, var практически не использовать.
Сравнение
- const — блочная область, TDZ, нельзя переприсваивать ссылку, обязательная инициализация.
- let — блочная область, TDZ, можно переприсваивать.
- var — функциональная область, hoisting в
undefined, можно переобъявлять (legacy).
const PI = 3.14; // не изменится
let count = 0; // будет меняться
count++;Правила выбора
- По умолчанию — `const`. Так явно видно, что значение не переприсваивается.
- `let` — только когда значение действительно меняется (счётчики, аккумуляторы, циклы).
- `var` — избегать: функциональная область и hoisting порождают неожиданное поведение.
Почему const по умолчанию
- Меньше багов от случайного переприсваивания.
- Код читается однозначнее.
constне делает объект иммутабельным — защищает только ссылку:
const arr = [];
arr.push(1); // ок — меняем содержимое, не ссылкуКоротко для собеседования
Выбирают const по умолчанию, let — когда значение переприсваивается, var — избегают из-за функциональной области и hoisting. const защищает ссылку, но не содержимое объекта.