> В чем разница между 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же можно объявить без значения и позже присвоить новое.
Пример:
JAVASCRIPTvar a = 1;let b = 2;const c = 3;if (true) {var a = 10; // переопределяет глобальную alet b = 20; // локальная b, не влияет на внешнюю// c = 30; // Ошибка: const нельзя переназначить}console.log(a); // 10console.log(b); // 2
На практике var почти не используется в современном коде из-за неочевидного поведения; предпочтение отдают let для изменяемых переменных и const для неизменяемых ссылок.
> Похожие задачи по frontend
Как создать промис, который возвращает результат первого успешно завершившегося промиса в JavaScript
Как оптимизировать код при отправке запроса на каждый символ ввода
Как работают call stack, callback queue, event loop, микротаски и макротаски в JavaScript
Какие события жизненного цикла HTML-страницы существуют
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью