> Почему var всплывает и что происходит при всплытии в JavaScript (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Сбер
Стек: JavaScript
> Пример ответа
В JavaScript механизм всплытия (hoisting) для var связан с тем, как интерпретатор обрабатывает объявления переменных до выполнения кода. При всплытии объявление переменной (но не её инициализация) перемещается в начало текущей области видимости (функции или глобального контекста). Это происходит на этапе компиляции, до выполнения строк кода.
На практике это означает, что переменная, объявленная через var, становится доступной в своей области видимости с самого начала, но её значение до строки присваивания будет undefined. Например:
JAVASCRIPTconsole.log(a); // undefined - переменная уже существует, но не инициализированаvar a = 5;console.log(a); // 5
Интерпретатор видит этот код как:
JAVASCRIPTvar a; // объявление всплыло наверхconsole.log(a); // undefineda = 5; // инициализация осталась на местеconsole.log(a); // 5
Почему так происходит? В ранних версиях JavaScript (ES5 и ранее) var был единственным способом объявления переменных, и такое поведение упрощало работу с функциями и циклами, хотя и могло приводить к неожиданным ошибкам. В современных стандартах (ES6+) рекомендуется использовать let и const, которые также всплывают, но находятся во "временной мёртвой зоне" (Temporal Dead Zone) до момента инициализации, что делает код более предсказуемым.
> Похожие задачи по frontend
Как рекурсивно проверять условие повторных запросов с учётом счётчика попыток в JavaScript
Как реализовать обработку клика на любой div внутри root и выводить в консоль только id этого div в JavaScript
Почему let и const выдают ошибку при обращении до объявления в JavaScript
Какое преимущество промисов перед колбэками при работе с асинхронностью в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью