Heim > Web-Frontend > js-Tutorial > Wie unterscheiden sich „let' und „const' von „var' beim JavaScript-Hoisting?

Wie unterscheiden sich „let' und „const' von „var' beim JavaScript-Hoisting?

Barbara Streisand
Freigeben: 2024-12-31 04:18:12
Original
308 Leute haben es durchsucht

How Do `let` and `const` Differ from `var` in JavaScript Hoisting?

Hochziehen von Variablen, die mit let oder const deklariert wurden

Während sich mit var deklarierte Variablen beim Hochziehen wie erwartet verhalten, werden die mit let oder const deklarierten Variablen angezeigt unterschiedliches Verhalten.

Heben aller Deklarationen

Alle JavaScript-Deklarationen (var, let, const, function, function*, class) werden hochgezogen, was bedeutet, dass sie überall innerhalb ihres jeweiligen Geltungsbereichs erkennbar sind.

Initialisierungsunterschied

Es besteht jedoch ein Unterschied zwischen var/function/function*- und let/const/class-Deklarationen in ihrer Initialisierung. Var-Deklarationen werden ab dem Zeitpunkt der Bindungserstellung am Anfang des Bereichs mit undefiniert initialisiert. Im Gegensatz dazu bleiben let/const/class-Deklarationen nicht initialisiert, bis ihre Anweisung ausgewertet wird.

Temporale Totzone für nicht initialisierte Variablen

Dieser nicht initialisierte Zustand erzeugt eine „zeitliche Totzone“. " wobei der Zugriff auf die Variable vor der Initialisierung zu einem führt Referenzfehler.

Beispiel:

x = y = "global";
(function() {
    x; // undefined
    y; // Reference error: y is not defined

    var x = "local";
    let y = "local";
}());
Nach dem Login kopieren

let vs. const in Hoisting

Let und const funktionieren hinsichtlich der Begriffe identisch des Hebens. Der Unterschied zwischen ihnen besteht darin, dass einer Konstanten bei der Deklaration immer ein Wert zugewiesen werden muss.

Fazit

Mit let oder const deklarierte Variablen werden angehoben, bleiben jedoch darin nicht initialisiert eine zeitliche Totzone, bis ihre Deklarationsanweisung verarbeitet wird. Ein vorzeitiger Zugriff führt zu einem ReferenceError.

Das obige ist der detaillierte Inhalt vonWie unterscheiden sich „let' und „const' von „var' beim JavaScript-Hoisting?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage