> В чем разница между var, const и let в JavaScript (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: ЛитРес
Стек: JavaScript
> Пример ответа
Разница между var, let и const в JavaScript заключается в области видимости, возможности переопределения и поведении при всплытии (hoisting).
-
var: имеет функциональную (или глобальную) область видимости. Переменная, объявленная черезvar, всплывает (hoisting) и инициализируется значениемundefined. Её можно переобъявлять и изменять. Пример:JAVASCRIPTconsole.log(a); // undefined (всплытие)var a = 5;var a = 10; // переобъявление допустимо -
let: имеет блочную область видимости (внутри{}). Всплывает, но не инициализируется (временная мёртвая зона до объявления). Переобъявление в той же области запрещено, но изменение значения разрешено.JAVASCRIPT// console.log(b); // ReferenceError (временная мёртвая зона)let b = 3;b = 4; // изменение допустимо// let b = 5; // SyntaxError: переобъявление запрещено -
const: также имеет блочную область видимости и временную мёртвую зону. Отличие отletв том, что переменная должна быть инициализирована при объявлении, и её значение нельзя изменить (для примитивов; для объектов ссылка фиксирована, но свойства можно менять).JAVASCRIPTconst c = 10;// c = 20; // TypeError: присваивание константеconst obj = { key: 'value' };obj.key = 'new'; // допустимо, меняется свойство, а не ссылка
Итог: используйте const по умолчанию, let — когда нужно переприсваивание, избегайте var в современном коде из-за неочевидного поведения.
> Похожие задачи по frontend
Что такое контекст (this) в JavaScript
Что такое каррирование
Что такое промисы в JavaScript и как они работают
Что такое всплытие (hoisting) в JavaScript?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью