JavaScript Let
La let
parola chiave è stata introdotta in
ES6 (2015) .
Le variabili definite con let
non possono essere dichiarate nuovamente.
Le variabili definite con let
devono essere dichiarate prima dell'uso.
Le variabili definite con let
hanno Block Scope.
Non può essere ridichiarato
Le variabili definite con let
non possono essere dichiarate nuovamente .
Non è possibile dichiarare nuovamente una variabile per errore.
Con let
te non puoi fare questo:
Esempio
let x = "John Doe";
let x = 0;
// SyntaxError: 'x' has already been declared
Con var
te puoi:
Esempio
var x = "John Doe";
var x = 0;
Ambito di blocco
Prima di ES6 (2015), JavaScript aveva solo Global Scope e Function Scope .
ES6 ha introdotto due nuove importanti parole chiave JavaScript: let
e const
.
Queste due parole chiave forniscono Block Scope in JavaScript.
Non è possibile accedere alle variabili dichiarate all'interno di un blocco { } dall'esterno del blocco:
Esempio
{
let x = 2;
}
// x can NOT be used here
Le variabili dichiarate con la var
parola chiave NON possono avere un ambito di blocco.
È possibile accedere alle variabili dichiarate all'interno di un blocco { } dall'esterno del blocco.
Esempio
{
var x = 2;
}
// x CAN be used here
Ridichiarazione di variabili
Ridichiarare una variabile utilizzando la var
parola chiave può creare problemi.
Ridichiarare una variabile all'interno di un blocco ridichiarerà anche la variabile all'esterno del blocco:
Esempio
var x = 10;
// Here x is 10
{
var x = 2;
// Here x is 2
}
// Here x is 2
Ridichiarare una variabile utilizzando la let
parola chiave può risolvere questo problema.
Ridichiarare una variabile all'interno di un blocco non ridichiarerà la variabile al di fuori del blocco:
Esempio
let x = 10;
// Here x is 10
{
let x = 2;
// Here x is 2
}
// Here x is 10
Supporto browser
La let
parola chiave non è completamente supportata in Internet Explorer 11 o versioni precedenti.
La tabella seguente definisce le prime versioni del browser con pieno supporto per la let
parola chiave:
Chrome 49 | Edge 12 | Firefox 44 | Safari 11 | Opera 36 |
Mar, 2016 | Jul, 2015 | Jan, 2015 | Sep, 2017 | Mar, 2016 |
Ridichiarare
Ridichiarare una variabile JavaScript con var
è consentita ovunque in un programma:
Esempio
var x = 2;
// Now x is 2
var x = 3;
// Now x is 3
Con let
, NON è consentito dichiarare nuovamente una variabile nello stesso blocco:
Esempio
var x = 2; // Allowed
let x = 3; // Not allowed
{
let x = 2; // Allowed
let x = 3 // Not allowed
}
{
let x = 2; // Allowed
var x = 3 // Not allowed
}
Ridichiarare una variabile con let
, in un altro blocco, È consentito:
Esempio
let x = 2; // Allowed
{
let x = 3; // Allowed
}
{
let x = 4; // Allowed
}
Facciamo sollevamento
Le variabili definite con var
vengono sollevate in alto e possono essere inizializzate in qualsiasi momento.
Significato: puoi usare la variabile prima che venga dichiarata:
Esempio
Questo va bene:
carName = "Volvo";
var carName;
Se vuoi saperne di più sul sollevamento, consulta il capitolo JavaScript Hoisting .
Anche le variabili definite con let
vengono sollevate nella parte superiore del blocco, ma non inizializzate.
Significato: l'utilizzo di una let
variabile prima che venga dichiarata risulterà in un
ReferenceError
:
Esempio
carName = "Saab";
let carName = "Volvo";