> Что будет при обращении к переменной var до объявления в JavaScript (JavaScript)

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

Компании: IT-One, Exness, Сбер

Стек: JavaScript

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

В JavaScript поведение при обращении к переменной var до её объявления зависит от того, где она находится, но в любом случае это не вызовет ошибку ReferenceError в современном смысле, а вернёт undefined. Это связано с механизмом hoisting (поднятие объявлений).

Когда интерпретатор встречает var, он «поднимает» объявление переменной в начало текущей области видимости (функции или глобального контекста), но не присваивает ей значение. Инициализация остаётся на месте исходного кода. Поэтому код:

JAVASCRIPT
console.log(a); // undefined
var a = 5;

выведет undefined, а не вызовет ошибку. Переменная a существует, но её значение - undefined до строки с присваиванием.

Важно: это работает только для var. Для let и const такое обращение вызовет ошибку ReferenceError из-за «временной мёртвой зоны» (Temporal Dead Zone), хотя они тоже поднимаются, но не инициализируются.

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

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