Если до объявления переменных вывести в console.log переменные, объявленные ниже через var, let и const, что произойдет в каждом случае?

var до присваивания даёт undefined; let и const до инициализации находятся в temporal dead zone и вызывают ReferenceError.

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

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

var до присваивания даёт undefined; let и const до инициализации находятся в temporal dead zone и вызывают ReferenceError.

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

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

var до присваивания даёт undefined; let и const до инициализации находятся в temporal dead zone и вызывают ReferenceError.

Это относится к обращению к соответствующей привязке в её области видимости. Если в одном скрипте сначала возникает необработанная ошибка при чтении let, следующие console.log уже не выполнятся, поэтому случаи часто рассматривают отдельно. Const дополнительно запрещает последующее переназначение, но не делает вложенный объект неизменяемым.

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

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

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

Подробнее