Hoisting
JavaScript 🟢 JuniorDefinition
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.