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;
}