JavaScript Let
Het let
trefwoord werd geïntroduceerd in
ES6 (2015) .
Variabelen gedefinieerd met let
kunnen niet opnieuw worden gedeclareerd.
Variabelen gedefinieerd met let
moeten vóór gebruik worden gedeclareerd.
Variabelen gedefinieerd met let
hebben Block Scope.
Kan niet opnieuw worden aangegeven
Variabelen gedefinieerd met let
kunnen niet opnieuw worden gedeclareerd .
U kunt een variabele niet per ongeluk opnieuw declareren.
Met let
u kunt dit niet doen:
Voorbeeld
let x = "John Doe";
let x = 0;
// SyntaxError: 'x' has already been declared
Met var
u kunt:
Voorbeeld
var x = "John Doe";
var x = 0;
Bereik blokkeren
Vóór ES6 (2015) had JavaScript alleen Global Scope en Function Scope .
ES6 introduceerde twee belangrijke nieuwe JavaScript-sleutelwoorden: let
en const
.
Deze twee trefwoorden bieden Block Scope in JavaScript.
Variabelen gedeclareerd binnen een { } blok zijn niet toegankelijk van buiten het blok:
Voorbeeld
{
let x = 2;
}
// x can NOT be used here
Variabelen gedeclareerd met het var
sleutelwoord kunnen GEEN blokbereik hebben.
Variabelen gedeclareerd binnen een { } blok zijn toegankelijk van buiten het blok.
Voorbeeld
{
var x = 2;
}
// x CAN be used here
Variabelen opnieuw declareren
Het opnieuw declareren van een variabele met het var
trefwoord kan problemen opleveren.
Het opnieuw declareren van een variabele binnen een blok zal ook de variabele buiten het blok opnieuw declareren:
Voorbeeld
var x = 10;
// Here x is 10
{
var x = 2;
// Here x is 2
}
// Here x is 2
Het opnieuw declareren van een variabele met het let
trefwoord kan dit probleem oplossen.
Het opnieuw declareren van een variabele binnen een blok zal de variabele niet opnieuw buiten het blok declareren:
Voorbeeld
let x = 10;
// Here x is 10
{
let x = 2;
// Here x is 2
}
// Here x is 10
Browserondersteuning
Het let
trefwoord wordt niet volledig ondersteund in Internet Explorer 11 of eerder.
De volgende tabel definieert de eerste browserversies met volledige ondersteuning voor het let
trefwoord:
Chrome 49 | Edge 12 | Firefox 44 | Safari 11 | Opera 36 |
Mar, 2016 | Jul, 2015 | Jan, 2015 | Sep, 2017 | Mar, 2016 |
Opnieuw declareren
Het opnieuw declareren van een JavaScript-variabele met var
is overal in een programma toegestaan:
Voorbeeld
var x = 2;
// Now x is 2
var x = 3;
// Now x is 3
Met let
, is het opnieuw declareren van een variabele in hetzelfde blok NIET toegestaan:
Voorbeeld
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
}
Het opnieuw declareren van een variabele met let
, in een ander blok, IS toegestaan:
Voorbeeld
let x = 2; // Allowed
{
let x = 3; // Allowed
}
{
let x = 4; // Allowed
}
Laat hijsen
Variabelen gedefinieerd met var
worden naar boven gehesen en kunnen op elk moment worden geïnitialiseerd.
Betekenis: U kunt de variabele gebruiken voordat deze wordt gedeclareerd:
Voorbeeld
Dit is oke:
carName = "Volvo";
var carName;
Als je meer wilt weten over hijsen, lees dan het hoofdstuk JavaScript Hijsen .
Variabelen gedefinieerd met let
worden ook naar de bovenkant van het blok gehesen, maar niet geïnitialiseerd.
Betekenis: het gebruik van een let
variabele voordat deze wordt gedeclareerd, resulteert in een
ReferenceError
:
Voorbeeld
carName = "Saab";
let carName = "Volvo";