Guide / JavaScript — basi del linguaggio / Scope e hoisting
Scope e hoisting
let/const, blocco e TDZ.
let e const hanno scope di blocco; var è legata alla funzione e viene "sollevata" senza inizializzazione utile. La zona temporale morta (TDZ) impedisce di leggere let/const prima della dichiarazione.
Le funzioni dichiarate con function sono hoistate intere nel loro scope.
Esempio
{
const x = 1;
// console.log(y); // TDZ
let y = 2;
}