Temporal Dead Zone
JavaScript 🟡 MidDéfinition
Zone entre le début du scope et la déclaration let/const ou la variable existe mais est inaccessible. Toute tentative d'accès lance un ReferenceError.
Analogie
Un colis en transit : il a été expédié (hoiste) mais tu ne peux pas l'ouvrir tant qu'il n'est pas livre (déclaration).
Exemple de code
{
// TDZ pour x commence ici
console.log(x); // ReferenceError!
// TDZ pour x finit ici
let x = 42;
console.log(x); // 42
}
Cas d'usage
Comprendre pourquoi let/const est plus sur que var et debugger les ReferenceError.
Termes liés
En entretien
C'est quoi la Temporal Dead Zone ?
C'est la zone entre le début du scope et la déclaration d'une variable let/const, où la variable existe déjà mais reste inaccessible. Toute tentative d'y accéder avant lance un ReferenceError, comme un colis expédié mais pas encore livré.
Pourquoi on dit que let/const sont plus sûrs que var à cause de ça ?
Parce que var accédée avant sa déclaration renvoie juste undefined silencieusement, alors que let/const lancent une erreur explicite pendant la TDZ. Ça permet de débugger tout de suite au lieu de laisser un bug silencieux se propager.
Comment tu débuggerais un ReferenceError lié à la TDZ ?
Je regarderais si la variable en let/const est utilisée avant sa ligne de déclaration dans le même scope. Le fix consiste simplement à déplacer la déclaration avant le premier usage.
Fiche mise à jour le 2026-09-27