> В чем разница между var, const и let в JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Иннотех, YADRO, циан, ООО Премиум ИТ Солюшен, EvApps, РСХБ, Домклик, IT-One, Rutube, Сфера, Сбер, TYMY, 1221 Systems, Globaldrive, Evercode, Purrweb

Стек: JavaScript

> Пример ответа

Ключевое различие между var, let и const в JavaScript - это область видимости, возможность переопределения и поведение при всплытии (hoisting).

  • var имеет функциональную (или глобальную) область видимости. Он всплывает в начало своей функции (или глобального контекста) и инициализируется значением undefined, поэтому доступен до объявления (без ошибки, но с undefined). Его можно переобъявлять и изменять в пределах одной функции.

  • let и const имеют блочную область видимости (ограничены фигурными скобками {}). Они тоже всплывают, но не инициализируются - обращение к ним до объявления вызывает ReferenceError (временная мёртвая зона). Переобъявлять их в одной области нельзя.

  • const отличается от let тем, что требует обязательной инициализации при объявлении и запрещает переназначение ссылки (но не запрещает изменение свойств объекта или элементов массива, если это не примитив). let же можно объявить без значения и позже присвоить новое.

Пример:

JAVASCRIPT
var a = 1;
let b = 2;
const c = 3;
if (true) {
var a = 10; // переопределяет глобальную a
let b = 20; // локальная b, не влияет на внешнюю
// c = 30; // Ошибка: const нельзя переназначить
}
console.log(a); // 10
console.log(b); // 2

На практике var почти не используется в современном коде из-за неочевидного поведения; предпочтение отдают let для изменяемых переменных и const для неизменяемых ссылок.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью