„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Let vs. Var in JavaScript: Was ist der Unterschied in Umfang und Verwendung?

Let vs. Var in JavaScript: Was ist der Unterschied in Umfang und Verwendung?

Veröffentlicht am 26.12.2024
Durchsuche:230

Let vs. Var in JavaScript: What's the Difference in Scope and Usage?

Let vs. Var in JavaScript: Gültigkeitsbereich und zeitliche Totzonen entmystifizieren

Die in ECMAScript 6 eingeführte let-Anweisung hat bei Entwicklern für Verwirrung gesorgt , insbesondere wie es sich vom etablierten Schlüsselwort var unterscheidet. Dieser Artikel befasst sich mit den Nuancen zwischen diesen beiden Variablendeklarationen und hebt ihre Scoping-Regeln und besten Anwendungsfälle hervor.

Scope

Der grundlegende Unterschied liegt in ihrem Scoping-Verhalten. Mit var deklarierte Variablen sind auf die Funktion beschränkt, in der sie definiert sind (Funktionsbereich), während let-Variablen auf den Block beschränkt sind, in dem sie eingeschlossen sind (Blockbereich). Dies bedeutet, dass Let-Variablen einen viel engeren Gültigkeitsbereich haben und so verhindert wird, dass sie mit Variablen interagieren, die außerhalb ihres unmittelbaren Blocks definiert sind.

Beispiel:

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();

Im obigen Beispiel bleibt die var-Variable moo auch außerhalb ihres Blocks zugänglich, während die let-Variable baz einen ReferenceError auslöst, wenn auf sie außerhalb ihres Blocks zugegriffen wird.

Temporal Totzonen

Ein weiterer Unterschied sind zeitliche Totzonen (TDZ). Für Let-Variablen gibt es eine TDZ vom Deklarationspunkt bis zum Ende des Blocks, in dem sie definiert sind. Während dieses Zeitraums führt der Zugriff auf eine Let-Variable ohne Initialisierung zu einem ReferenceError.

Beispiel :

function test() {
  console.log(foo); // ReferenceError
  let foo = "Bar";
}

test();

In diesem Code führt der Zugriff auf die let-Variable foo vor ihrer Initialisierung aufgrund der TDZ zu einem ReferenceError.

Wann sollte Let vs. Var verwendet werden

Im Allgemeinen bevorzugen Sie die Verwendung von let für Variablen innerhalb von Blöcken, um eine Verschmutzung des globalen Bereichs und Kollisionen von Variablennamen zu vermeiden. Var ist immer noch nützlich für Variablen, auf die über mehrere Blöcke oder Funktionen hinweg zugegriffen werden muss.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3