Ausführungskontext in JavaScript
Beginnen wir mit einem Beispiel und erläutern dann, wie dieser Code hinter den Kulissen funktioniert.
var x = 10;
var y = 20;
function add(a,b){
return a+b;
}
var result = add(x,y);
console.log(result) //30
Deklarieren Sie zunächst die x- und y-Variablen und initialisieren Sie sie mit den jeweiligen Werten 10 und 20.
Zweitens deklarieren Sie die Add-Funktion, die das Argument akzeptiert und die Summe der Argumente zurückgibt, also 10 + 20 = 30.
Drittens rufen Sie die Add-Funktion mit den Argumenten als Werten der x- und y-Variablen auf und speichern das Ergebnis in der Variablen result.
Abschließend erfolgt die Ausgabe der Variable result mit der Konsole.
Während der obige Code ausgeführt wird, führt JavaScript viele Dinge aus.
Wenn die JavaScript-Engine zu diesem Zeitpunkt den JavaScript-Code ausführt, erstellt sie Ausführungskontexte.
Jeder Ausführungskontext hat zwei Phasen
- Die Schöpfungsphase.
- Die Ausführungsphase.
Wenn die JavaScript-Engine Code zum ersten Mal ausführt, erstellt sie den globalen Ausführungskontext. Während dieser Phase führt JavaScript einige Aufgaben aus.
- Erstellen Sie das globale Objekt, z. B. das Fenster im Webbrowser oder das globale Objekt in Node.js.
- Erstellen Sie dieses Objekt (dieses Schlüsselwort) und binden Sie es an das globale Objekt. Im Falle eines Webbrowsers ist dieses Schlüsselwort an das Fensterobjekt angehängt und in Node js ist dieses Schlüsselwort an das globale Objekt angehängt.
- Richten Sie einen Speicherheap zum Speichern von Variablen- und Funktionsreferenzen ein.
- Speichern Sie die Funktionsdeklarationen im Speicherheap und die Variablen im globalen Ausführungskontext mit den Anfangswerten als undefiniert.
- Speichern Sie die Variablen x, y & Ergebnis und Funktionsdeklaration add() im globalen Ausführungskontext.
- Initialisieren Sie die Variablen mit einem undefinierten Wert, dh x = undefiniert, y = undefiniert und Ergebnis = undefiniert.
Ausführungsphase
Während der Ausführungsphase führt die JavaScript-Engine den Code Zeile für Zeile aus, weist den Variablen Werte zu und führt die Funktionsaufrufe aus.
Für jeden Funktionsaufruf erstellt die JavaScript-Engine einen neuen funktionalen Ausführungsaufruf.
Der Funktionsausführungskontext ähnelt dem globalen Ausführungskontext. Anstatt jedoch das globale Objekt zu erstellen, erstellt die JavaScript-Engine das Argumentobjekt, das eine Referenz auf alle Parameter der Funktion darstellt.
In unserem Beispiel erstellt die JavaScript-Engine ein Argumentobjekt, das auf alle an die Funktion übergebenen Parameter verweist und diesen Wert auf das globale Objekt setzt. Im Falle eines Webbrowsers ist dieser Wert mit dem Fensterobjekt verknüpft und in Node js ist dieser Wert mit global verknüpft Objekt und es initialisiert auch a & b Parameter mit undefiniertem Wert.
Während der Ausführungsphase des Funktionsausführungskontexts weist die JavaScript-Engine den Parametern a und b die Werte 10 und 20 zu und gibt das Ergebnis (30) an den globalen Ausführungskontext zurück.
Um den Überblick über alle Ausführungskontexte zu behalten, einschließlich des globalen Ausführungskontexts und der Funktionsausführungskontexte, verwendet die JavaScript-Engine den Aufrufstapel.
Lass uns Kontakt halten
Ich hoffe, dieser Artikel ist für Sie wertvoll. Wir sehen uns beim nächsten!

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































