In diesem Tutorial lernen Sie anhand von Beispielen den Unterschied zwischen let und var in JavaScript kennen.
In JavaScript werden sowohl die Schlüsselwörter var
als let
auch zum Deklarieren von Variablen verwendet.
Das let
Schlüsselwort wurde in der späteren Version von JavaScript eingeführt, die als ES6 (ES2015) bekannt ist . Und es ist die bevorzugte Methode, Variablen zu deklarieren.
JavaScript lassen Vs var
Hier ist die Übersicht über die Unterschiede zwischen let
und var
.
Lassen | var |
---|---|
let ist block-scoped. | var ist funktionsbezogen. |
let erlaubt es nicht, Variablen neu zu deklarieren. | var ermöglicht das erneute Deklarieren von Variablen. |
Das Heben erfolgt nicht in let. | Das Heben erfolgt in var. |
JavaScript lässt Vs var im lokalen Bereich
var ist funktionsbezogen
Die in einer Funktion mit deklarierte Variable var
kann an einer beliebigen Stelle innerhalb einer Funktion verwendet werden. Beispielsweise,
// program to print text // variable a cannot be used here function greet() ( // variable a can be used here var a = 'hello'; console.log(a); ) // variable a cannot be used here greet(); // hello
Im obigen Programm wird die Variable a mit deklariert var
. Die Variable a kann an einer beliebigen Stelle innerhalb der Funktion verwendet werden greet
.
let ist block-scoped
Auf die mit deklarierte Variable let
kann nur innerhalb eines Codeblocks zugegriffen werden. Beispielsweise,
// program to print the text // variable a cannot be used here function greet() ( let a = 'hello'; // variable b cannot be used here if(a == 'hello')( // variable b can be used here let b = 'world'; console.log(a + ' ' + b); ) // variable b cannot be used here console.log(a + ' ' + b); // error ) // variable a cannot be used here greet();
Ausgabe
Hallo Welt Ungefangener Referenzfehler: b ist nicht definiert
Im obigen Programm wird die Variable a innerhalb der Funktion deklariert und kann überall innerhalb der Funktion aufgerufen werden (a wird funktionsbezogen).
Die Variable b wird jedoch in der if
block-Anweisung deklariert . b hat einen Blockbereich und ist nur innerhalb des if
Blocks zugänglich .
Wenn Sie versuchen, außerhalb des if
Blocks auf b zuzugreifen , tritt daher ein Fehler auf (wie oben im Programm gezeigt).
Hinweis : Die in einer Funktion deklarierten Variablen haben einen Funktionsbereich für var
und let
.
let erlaubt es nicht, Variablen neu zu deklarieren
1. Eine mit deklarierte Variable var
kann erneut deklariert werden. Beispielsweise,
var a = 5; // 5 var a = 3; // 3
Eine mit deklarierte Variable let
kann nicht innerhalb desselben Blocks oder Bereichs erneut deklariert werden. Beispielsweise,
let a = 5; let a = 3; // error
Ausgabe
Nicht erfasster SyntaxError: Der Bezeichner 'a' wurde bereits deklariert
2. Durch erneutes Deklarieren einer Variablen var
in einem anderen Bereich oder Block wird auch der Wert der äußeren Variablen geändert. Beispielsweise,
var a = 5; console.log(a); // 5 ( var a = 3; console.log(a); // 3 ) console.log(a); // 3
Durch erneutes Deklarieren einer Variablen mit let
in einem anderen Bereich oder Block wird diese Variable als andere Variable behandelt. Und der Wert einer Variablen außerhalb ändert sich nicht. Beispielsweise,
let a = 5; console.log(a); // 5 ( let a = 3; console.log(a); // 3 ) console.log(a); // 5
3. Wenn eine mit deklarierte Variable var
in einer Schleife verwendet wird, ändert sich der Wert dieser Variablen. Beispielsweise,
var a = 2; for(var a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 3
Im obigen Programm for
deklariert die Schleife die Variable a neu. Daher wird der Wert von am Ende a
auf 3 geändert .
Wenn eine mit let deklarierte Variable in einer Schleife verwendet wird, ändert sich der Wert einer Variablen nicht. Beispielsweise,
let a = 2; for(let a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 2
Im obigen Programm for
behandelt die Schleife die Variable a als eine andere Variable als die oben deklarierte. Und der Umfang dieser Variablen befindet sich nur innerhalb der for
Schleife. Daher bleibt der Wert der Variablen a am Ende 2 .
Lassen Sie das Heben nicht zu
Die mit deklarierten Variablen var
werden an den Anfang des Programmbereichs gesetzt. Beispielsweise,
console.log(a); var a; // undefined (not an error)
Das Schlüsselwort let
erlaubt kein Heben. Beispielsweise,
console.log(a); let a; // Uncaught ReferenceError: a is not defined
Wenn Sie mehr über das Heben erfahren möchten, besuchen Sie JavaScript-Heben.
let und var Browser-Unterstützung
Die meisten modernen Browser unterstützen die Verwendung von let
. Einige Browser unterstützen dies jedoch nicht vollständig let
.
Um mehr zu erfahren, besuchen Sie JavaScript und lassen Sie den Browser unterstützen.
Hinweis : Bei globalem Gültigkeitsbereich verhalten sich beide var
und let
gleich. Beispielsweise,
var a = 5; // 5
Die Variable a hat einen globalen Gültigkeitsbereich und kann überall im Programm aufgerufen werden.
let a = 5; // 5
Die Variable a hat einen globalen Gültigkeitsbereich und kann überall im Programm aufgerufen werden.