Hoisting

JavaScript 🟢 Junior

Definition

Mecanisme par lequel les declarations de variables (var) et fonctions sont remontees en haut de leur scope durant la phase de compilation. Les let/const sont hoistees mais restent dans la Temporal Dead Zone.

Analogie

Comme un prof qui note tous les noms au tableau avant le debut du cours, mais ne remplit les notes qu'au fur et a mesure.

Exemple de code

console.log(a); // undefined (var hoiste)
var a = 5;

sayHi(); // OK, declaration hoistee
function sayHi() { console.log('Hi'); }

console.log(b); // ReferenceError (TDZ)
let b = 10;

Cas d'usage

Comprendre pourquoi une variable vaut undefined au lieu de lancer une erreur, debugger l'ordre d'execution.

Anti-pattern

Utiliser var et compter sur le hoisting au lieu de declarer les variables en haut du scope.
#core#interview#fondamental