Hoisting
Phénomène JS : les déclarations de variables et de fonctions sont « remontées » en haut de leur portée à la compilation.
var x est déclarée avant que le code ne s'exécute, mais l'affectation de sa valeur a lieu là où elle est écrite. function f() est entièrement hissée. let et const sont aussi hissées (dans la « TDZ » — Temporal Dead Zone), mais ne peuvent pas être utilisées avant leur déclaration. Un grand classique des pièges JavaScript.