Temporal Dead Zone

JavaScript 🟡 Mid

Dé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.

#core#interview#fondamental

En entretien

  1. 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é.

  2. 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.

  3. 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

← → au clavier pour passer d'une fiche à l'autre