Temporal Dead Zone — это период между началом области видимости и точкой, где переменная или объявление фактически инициализируется. В течение этого периода любая попытка обратиться к привязке выбрасывает ошибку.
Как и let и const, объявления классов поднимаются, но не инициализируются. Это означает, что JavaScript-движок знает о имени класса заранее, но класс нельзя использовать до тех пор, пока выполнение не достигнет его объявления.
Попытка создать экземпляр класса до его объявления выбрасывает ReferenceError:
new Foo(); // ReferenceError: Cannot access 'Foo' before initialization
class Foo {}
var — они не инициализируются значением undefined при поднятииlet/constlet или const)const Bar = class {}; // Bar также находится в TDZ до этой строки
Объявления классов поднимаются в начало своей области видимости, но в отличие от var, они остаются неинициализированными в течение Temporal Dead Zone и не могут быть доступны до того, как объявление будет вычислено.
Новый — ещё не проверен сообществом
Вы