Heim > Web-Frontend > js-Tutorial > Hauptteil

Hochziehen in Javascript?

PHPz
Freigeben: 2024-07-17 10:40:29
Original
708 Leute haben es durchsucht

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;
Nach dem Login kopieren

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");
}
Nach dem Login kopieren

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!

Quelle:dev.to
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage