JavaScript Let-Schlüsselwort
Das Schlüsselwort let
wurde in ES6 (2015) eingeführt.
Mit let
definierte Variablen können nicht erneut deklariert werden.
Mit let
definierte Variablen müssen vor der Verwendung deklariert werden.
Variablen, die mit let
definiert wurden, haben einen Blockbereich.
Kann nicht erneut deklariert werden
Variablen, die mit let
definiert wurden, können nicht neu deklariert werden.
Sie können eine Variable nicht versehentlich neu deklarieren.
Mit let
können Sie Folgendes 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;
Blockbereich
Vor ES6 (2015) hatte JavaScript nur Global Scope und Function Scope.
ES6 führte zwei wichtige neue JavaScript-Schlüsselwörter ein: let
und const
.
Diese beiden Schlüsselwörter stellen den Blockbereich in JavaScript bereit.
Variablen, die innerhalb eines { }-Blocks deklariert wurden, können nicht von außerhalb des Blocks aufgerufen werden:
Beispiel
{
let x = 2;
}
// x kann hier NICHT verwendet werden
Variablen, die mit dem Schlüsselwort var
deklariert wurden, dürfen KEINEN Blockbereich haben.
Auf Variablen, die innerhalb eines { }-Blocks deklariert sind, kann von außerhalb des Blocks zugegriffen werden.
Beispiel
{
var x = 2;
}
// x KANN hier verwendet werden
Variablen neu deklarieren
Das Neudeklarieren einer Variablen mit dem Schlüsselwort var
kann zu Problemen führen.
Durch die Neudeklaration einer Variablen innerhalb eines Blocks wird auch die Variable außerhalb des Blocks neu deklariert:
Das Neudeklarieren einer Variablen mit dem Schlüsselwort let
kann dieses Problem lösen.
Durch die Neudeklaration einer Variablen innerhalb eines Blocks wird die Variable außerhalb des Blocks nicht neu deklariert:
Browser-Unterstützung
Das Schlüsselwort let
wird in Internet Explorer 11 oder früher nicht vollständig unterstützt.
Die folgende Tabelle definiert die ersten Browserversionen mit vollständiger Unterstützung für das Schlüsselwort let
:
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:
Mit let
ist die erneute Deklaration einer Variablen im selben Block NICHT zulässig:
Beispiel
var x = 2; // Erlaubt
let x = 3; // Nicht erlaubt
{
let x = 2; // Erlaubt
let x = 3 // Nicht erlaubt
}
{
let x = 2; // Erlaubt
var x = 3 // Nicht erlaubt
}
Das erneute Deklarieren einer Variablen mit let
in einem anderen Block ist zulässig:
Heben lassen
Mit var
definierte Variablen werden nach oben angehoben und können jederzeit initialisiert werden.
Bedeutung: Sie können die Variable verwenden, bevor sie deklariert wird:
Wenn Sie mehr über das Heben erfahren möchten, lesen Sie das Kapitel JavaScript Hoisting.
Variablen, die mit let
definiert wurden, werden ebenfalls an die Spitze des Blocks gehoben, aber nicht initialisiert.
Bedeutung: Die Verwendung einer let
-Variable vor ihrer Deklaration führt zu einem ReferenceError
: