let x = 5;

В этом коде будет ошибка ReferenceError: Cannot access 'x' before initialization.

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

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

В этом коде будет ошибка ReferenceError: Cannot access 'x' before initialization.

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

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

Условие

let x = 5; (function () { console.log(x); let x = 0; })()

Ответ

В этом коде будет ошибка ReferenceError: Cannot access 'x' before initialization.

Почему так происходит:

  • Внутри функции объявлена переменная x с помощью let.
  • Переменные, объявленные через let и const, находятся в "временной мёртвой зоне" (Temporal Dead Zone) с начала блока до места объявления.
  • При вызове console.log(x) переменная x уже объявлена, но ещё не инициализирована, поэтому доступ к ней вызывает ошибку.

Если бы x внутри функции была объявлена через var, то вывод был бы undefined, так как var поднимается (hoisting) и инициализируется значением undefined.

Итог: код выбросит ошибку из-за попытки доступа к let-переменной до её объявления.

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

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

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

Подробнее