Hack Frontend Community

Что такое временная мёртвая зона (TDZ) в JavaScript

Что такое Temporal Dead Zone (TDZ)?

TDZ (Temporal Dead Zone) — это период времени между началом области видимости переменной (например, блок if, for, функция и т. д.) и её фактической инициализацией, в течение которого к переменной нельзя обращаться.

Эта зона возникает при использовании let или const.


Простой пример

console.log(x); // ❌ ReferenceError: Cannot access 'x' before initialization
let x = 10;

Хотя переменная x объявлена, вы получаете ошибку, потому что вы обратились к ней до инициализации — вы находитесь во временной мёртвой зоне.

TDZ применяется к:

  • let
  • const
  • Параметрам в функциях с деструктуризацией
  • Классам, объявленным через class

Вывод

Тип переменнойПоднимаетсяИнициализируетсяTDZ существует
varДаundefinedНет
letДаНетДа
constДаНетДа

Важно:

TDZ — причина, по которой let и const более безопасны, чем var: вы не можете использовать переменные до их объявления, и это предотвращает ошибки.