Heim  >  Artikel  >  Web-Frontend  >  Hochziehen in Javascript?

Hochziehen in Javascript?

PHPz
PHPzOriginal
2024-07-17 10:40:29705Durchsuche

Hoisting in javascript ?

„Hoisting ist ein Verhalten in Javascript, bei dem alle Variablen- und Funktionsdeklarationen während der Kompilierungsphase vor der Codeausführung an den Anfang des enthaltenden Bereichs verschoben werden“

Sie sind vielleicht überall auf diese Definition gestoßen, aber „es ist ein Mythos, dass alle Variablen- und Funktionsdeklarationen physisch oben im Code stehen“ Das ist nicht wahr!

Aber stattdessen wird beim Hochziehen aller Variablen- und Funktionsdeklarationen bereits vor der Codeausführung in der Kompilierung Speicher zugewiesen und bleibt genau dort, wo wir sie eingegeben haben.

Also genau, wie var/let/const und Funktionen angehoben werden.

Hier einige Beispiele:

console.log(a) // undefined
console.log(b) // ReferenceError
console.log(c) // ReferenceError

var a = 10;
let b = 20;
const c = 30;

Variable, die mit var deklariert wurde, wird angehoben und während der Kompilierungszeit wird die Variable var im Speicher mit dem Wert undefiniert zugewiesen. Deshalb erhalten wir undefiniert, wenn wir var vor der Deklaration trösten

Variable, die mit const/let deklariert wurde, wird ebenfalls angehoben, aber nicht mit undefiniert initialisiert. Wir können vor der Deklaration nicht auf sie zugreifen, andernfalls erhalten wir einen ReferenceError. Dies liegt an der temporären Totzone, einer Zeit, in der Variablen vorhanden, aber nicht initialisiert sind.

Aber was ist mit der Funktion

Nun, es kommt darauf an, wie wir unsere Funktionen deklarieren. Siehe unten.

greet1();
greet2();
greet3();
greet4();

//function declaration is full hoisted
function greet1(){
    console.log("greet1");
}

// TypeError: greet2 is not a function
var greet2 = function(){
    console.log("greet2");
}

 // ReferenceError: Cannot access 'greet3' before initialization
let greet3 = function(){
    console.log("greet2");
}

// ReferenceError: Cannot access 'greet4' before initialization
const greet4 = function(){
    console.log("greet2");
}

Die traditionelle Funktionsdeklaration ist vollständig hochgezogen, sodass wir sie im gesamten Code aufrufen können.

Aber mit dem Funktionsausdruck können wir das nicht, bevor er deklariert wurde. Aus diesem Grund geben uns drei mit Variablen deklarierte Funktionen einen Fehler. Wir haben also zwei Möglichkeiten: Entweder wir ändern den Funktionsausdruck in eine Funktionsdeklaration oder wir rufen die Funktion nach der Deklaration auf.

Das obige ist der detaillierte Inhalt vonHochziehen in Javascript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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