Sobes.tech
Назад к вопросам
Middle+
1

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

Компании, где спрашивали
IT OneIT One

Ответ от нейросети

sobes.tech AI

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

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

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

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

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