var до присваивания даёт undefined; let и const до инициализации находятся в temporal dead zone и вызывают ReferenceError.
Если до объявления переменных вывести в console.log переменные, объявленные ниже через var, let и const, что произойдет в каждом случае?
var до присваивания даёт undefined; let и const до инициализации находятся в temporal dead zone и вызывают ReferenceError.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
var до присваивания даёт undefined; let и const до инициализации находятся в temporal dead zone и вызывают ReferenceError.
Это относится к обращению к соответствующей привязке в её области видимости. Если в одном скрипте сначала возникает необработанная ошибка при чтении let, следующие console.log уже не выполнятся, поэтому случаи часто рассматривают отдельно. Const дополнительно запрещает последующее переназначение, но не делает вложенный объект неизменяемым.