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

Что такое Temporal Dead Zone (TDZ)? Из-за чего она появляется и как с этим бороться?

Компании, где спрашивали
НСПК

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

sobes.tech AI

Temporal Dead Zone (TDZ) — это период времени между началом блока кода (например, блока {}) и моментом объявления переменной с помощью let или const, в течение которого к этой переменной нельзя обратиться. Если попытаться использовать переменную до её объявления, будет выброшена ошибка ReferenceError.

TDZ появляется из-за того, что переменные, объявленные через let и const, не поднимаются (hoisting) так, как это происходит с var. Они существуют в области видимости, но не инициализированы до строки объявления.

Чтобы избежать ошибок, связанных с TDZ, нужно:

  • Объявлять переменные в начале блока или перед использованием.
  • Не обращаться к переменным до их объявления.

Пример TDZ:

{
  console.log(a); // ReferenceError: Cannot access 'a' before initialization
  let a = 10;
}