Entschlüsselung der Unterschiede zwischen „let“ und „var“ in JavaScript
ES6 führte das Schlüsselwort „let“ ein, das oft als lokale Variable bezeichnet wird. Sein Verhalten unterscheidet sich erheblich vom herkömmlichen Schlüsselwort „var“, und das Verständnis dieser Unterschiede ist für eine effektive JavaScript-Codierung von entscheidender Bedeutung.
Bereichs- und Blockgrenzen
Der Hauptunterschied liegt in den Bereichsregeln. „var“-Variablen sind mit dem umschließenden Funktionsumfang verknüpft, während „let“-Variablen an den nächstgelegenen umschließenden Block (gekennzeichnet durch {}) gebunden sind – auch bekannt als Blockumfang.
Beispielcode
Bedenken Sie den folgenden Codeausschnitt:
function run() {
var foo = "Foo";
let bar = "Bar";
console.log(foo, bar); // Foo Bar
{
var moo = "Mooo"
let baz = "Bazz";
console.log(moo, baz); // Mooo Bazz
}
console.log(moo); // Mooo
console.log(baz); // ReferenceError
}
run();
Nach dem Login kopieren
-
Funktionsbereich (var): „foo“ deklariert mit „var“ ist in der gesamten Funktion „run()“ zugänglich.
-
Blockbereich (let): „bar“ deklariert mit „ let“ ist nur innerhalb des Blocks verfügbar, in dem es definiert ist.
-
Neudeklaration (var): „moo“, das mit „var“ deklariert wurde, kann innerhalb neu deklariert werden der Block, was zu Abschattung führt.
-
Temporale Totzone (let): „baz“, deklariert mit „let“, wird erst zugänglich, nachdem der Block ausgeführt wurde, wodurch eine zeitliche Totzone entsteht.
-
Heben (var): „moo“ wird gehisst und kann außerhalb des Blocks, in dem es deklariert ist, aufgerufen werden, „baz“ jedoch nicht gehisst.
Wann sollte „let“ anstelle von „var“ verwendet werden?
„let“ sollte verwendet werden, wenn:
- Sie benötigen Variablen mit Gültigkeitsbereich einen bestimmten Block.
- Sie möchten Namenskonflikte und Schattenbildung vermeiden.
- Sie möchten eine Iteration auf Blockebene implementieren (z. B. „for let“-Schleifen).
„var“ kann weiterhin verwendet werden, wenn:
- Sie benötigen Variablen, auf die in einer Funktion zugegriffen werden kann.
- Sie müssen Variablen innerhalb verschachtelter Blöcke neu deklarieren.
- Sie arbeiten mit Legacy-Code, der stark darauf angewiesen ist „var“.
Das obige ist der detaillierte Inhalt vonWas sind die Hauptunterschiede zwischen den JavaScript-Schlüsselwörtern „let' und „var'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!