JavaScript-Let
Das let
Schlüsselwort wurde in
ES6 (2015) eingeführt .
Mit definierte Variablen let
können nicht neu deklariert werden.
Mit definierte Variablen let
müssen vor der Verwendung deklariert werden.
Mit definierte Variablen let
haben einen Blockbereich.
Kann nicht neu deklariert werden
Mit definierte Variablen let
können nicht neu deklariert werden .
Sie können eine Variable nicht versehentlich neu deklarieren.
Mit let
können Sie dies nicht tun:
Beispiel
let x = "John Doe";
let x = 0;
// SyntaxError: 'x' has already been declared
Mit var
können Sie:
Beispiel
var x = "John Doe";
var x = 0;
Bereich blockieren
Vor ES6 (2015) hatte JavaScript nur Global Scope und Function Scope .
ES6 hat zwei wichtige neue JavaScript-Schlüsselwörter eingeführt: let
und const
.
Diese beiden Schlüsselwörter stellen den Blockbereich in JavaScript bereit.
Auf Variablen, die innerhalb eines { }-Blocks deklariert sind, kann nicht von außerhalb des Blocks zugegriffen werden:
Beispiel
{
let x = 2;
}
// x can NOT be used here
Mit dem Schlüsselwort deklarierte Variablen var
können KEINEN Blockbereich haben.
Auf innerhalb eines { }-Blocks deklarierte Variablen kann von außerhalb des Blocks zugegriffen werden.
Beispiel
{
var x = 2;
}
// x CAN be used here
Variablen umdeklarieren
Das erneute Deklarieren einer Variablen mit dem var
Schlüsselwort kann zu Problemen führen.
Durch die Neudeklaration einer Variablen innerhalb eines Blocks wird auch die Variable außerhalb des Blocks neu deklariert:
Beispiel
var x = 10;
// Here x is 10
{
var x = 2;
// Here x is 2
}
// Here x is 2
Das Neudeklarieren einer Variablen mit dem let
Schlüsselwort kann dieses Problem lösen.
Durch die Neudeklaration einer Variablen innerhalb eines Blocks wird die Variable außerhalb des Blocks nicht neu deklariert:
Beispiel
let x = 10;
// Here x is 10
{
let x = 2;
// Here x is 2
}
// Here x is 10
Browser-Unterstützung
Das let
Schlüsselwort wird in Internet Explorer 11 oder früher nicht vollständig unterstützt.
Die folgende Tabelle definiert die ersten Browserversionen mit voller Unterstützung für das let
Schlüsselwort:
Chrome 49 | Edge 12 | Firefox 44 | Safari 11 | Opera 36 |
Mar, 2016 | Jul, 2015 | Jan, 2015 | Sep, 2017 | Mar, 2016 |
Neudeklaration
Das erneute Deklarieren einer JavaScript-Variablen mit var
ist überall in einem Programm zulässig:
Beispiel
var x = 2;
// Now x is 2
var x = 3;
// Now x is 3
Mit let
ist die Neudeklaration einer Variablen im selben Block NICHT erlaubt:
Beispiel
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
}
Das Umdeklarieren einer Variablen mit let
, in einem anderen Block, IST erlaubt:
Beispiel
let x = 2; // Allowed
{
let x = 3; // Allowed
}
{
let x = 4; // Allowed
}
Heben lassen
Mit definierte Variablen var
werden nach oben gehoben und können jederzeit initialisiert werden.
Bedeutung: Sie können die Variable verwenden, bevor sie deklariert wird:
Beispiel
Das ist in Ordnung:
carName = "Volvo";
var carName;
Wenn Sie mehr über Hoisting erfahren möchten, studieren Sie das Kapitel JavaScript Hoisting .
Mit definierte Variablen let
werden ebenfalls an den Anfang des Blocks gehoben, aber nicht initialisiert.
Bedeutung: Die Verwendung einer let
Variablen, bevor sie deklariert wird, führt zu einem
ReferenceError
:
Beispiel
carName = "Saab";
let carName = "Volvo";