Какой вывод получит console.log при объявлении переменной через var после её использования

В обычной чистой области видимости будет выведено undefined. Объявление var создаёт привязку до выполнения кода, но присваивание 9 происходит только на следующей строке.

Короткий ответ

Что ответить на собеседовании

В обычной чистой области видимости будет выведено undefined. Объявление var создаёт привязку до выполнения кода, но присваивание 9 происходит только на следующей строке.

Подробный разбор

Ответ с пояснениями

Условие

Определите, какой текст появится в консоли при выполнении следующего фрагмента кода:

console.log(value);
var value = 9;

Ответ

В обычной чистой области видимости будет выведено undefined. Объявление var создаёт привязку до выполнения кода, но присваивание 9 происходит только на следующей строке.

Это hoisting объявления, а не перенос присваивания наверх. В момент console.log переменная уже существует и инициализирована undefined, поэтому ReferenceError не возникает.

С let или const чтение до объявления попало бы в temporal dead zone и завершилось ошибкой. Оговорка о чистой области важна для повторного исполнения в общей консоли: существующая ранее var value могла бы сохранять старое значение до нового присваивания.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее