JavaScript Let
Słowo let
kluczowe zostało wprowadzone w
ES6 (2015) .
Zmienne zdefiniowane za let
pomocą nie mogą być ponownie zadeklarowane.
Zmienne zdefiniowane za pomocą let
muszą zostać zadeklarowane przed użyciem.
Zmienne zdefiniowane za pomocą let
mają zasięg bloku.
Nie można ponownie zadeklarować
Zmienne zdefiniowane za let
pomocą nie mogą być ponownie zadeklarowane .
Nie można przypadkowo ponownie zadeklarować zmiennej.
Z let
nie możesz tego zrobić:
Przykład
let x = "John Doe";
let x = 0;
// SyntaxError: 'x' has already been declared
Dzięki var
niemu możesz:
Przykład
var x = "John Doe";
var x = 0;
Zakres bloku
Przed ES6 (2015) JavaScript miał tylko Global Scope i Function Scope .
ES6 wprowadził dwa ważne nowe słowa kluczowe JavaScript: let
i const
.
Te dwa słowa kluczowe zapewniają zakres bloku w JavaScript.
Do zmiennych zadeklarowanych wewnątrz bloku { } nie można uzyskać dostępu spoza bloku:
Przykład
{
let x = 2;
}
// x can NOT be used here
Zmienne zadeklarowane var
słowem kluczowym NIE mogą mieć zasięgu blokowego.
Dostęp do zmiennych zadeklarowanych wewnątrz bloku { } można uzyskać spoza bloku.
Przykład
{
var x = 2;
}
// x CAN be used here
Ponowne deklarowanie zmiennych
Ponowne zadeklarowanie zmiennej za pomocą var
słowa kluczowego może nastręczać problemy.
Ponowne zadeklarowanie zmiennej wewnątrz bloku spowoduje również ponowne zadeklarowanie zmiennej poza blokiem:
Przykład
var x = 10;
// Here x is 10
{
var x = 2;
// Here x is 2
}
// Here x is 2
Ponowne zadeklarowanie zmiennej za pomocą let
słowa kluczowego może rozwiązać ten problem.
Ponowne zadeklarowanie zmiennej wewnątrz bloku nie spowoduje ponownego zadeklarowania zmiennej poza blokiem:
Przykład
let x = 10;
// Here x is 10
{
let x = 2;
// Here x is 2
}
// Here x is 10
Obsługa przeglądarki
Słowo let
kluczowe nie jest w pełni obsługiwane w programie Internet Explorer 11 lub starszym.
Poniższa tabela przedstawia pierwsze wersje przeglądarek z pełną obsługą let
słowa kluczowego:
Chrome 49 | Edge 12 | Firefox 44 | Safari 11 | Opera 36 |
Mar, 2016 | Jul, 2015 | Jan, 2015 | Sep, 2017 | Mar, 2016 |
Ponowne deklarowanie
Ponowne zadeklarowanie zmiennej JavaScript z var
jest dozwolone w dowolnym miejscu programu:
Przykład
var x = 2;
// Now x is 2
var x = 3;
// Now x is 3
W przypadku let
, ponowne zadeklarowanie zmiennej w tym samym bloku NIE jest dozwolone:
Przykład
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
}
Ponowne zadeklarowanie zmiennej z let
, w innym bloku, JEST dozwolone:
Przykład
let x = 2; // Allowed
{
let x = 3; // Allowed
}
{
let x = 4; // Allowed
}
Niech podnoszenie
Zmienne zdefiniowane za pomocą var
są podnoszone do góry i można je zainicjować w dowolnym momencie.
Znaczenie: Możesz użyć zmiennej przed jej zadeklarowaniem:
Przykład
To jest wporządku:
carName = "Volvo";
var carName;
Jeśli chcesz dowiedzieć się więcej o podnoszeniu, przeczytaj rozdział JavaScript Podnoszenie .
Zmienne zdefiniowane za pomocą let
są również podnoszone na górę bloku, ale nie są inicjowane.
Znaczenie: Użycie let
zmiennej przed jej zadeklarowaniem spowoduje
ReferenceError
:
Przykład
carName = "Saab";
let carName = "Volvo";