Heim >Web-Frontend >js-Tutorial >Wie sieht die JS-Engine aus, wenn sie läuft?

Wie sieht die JS-Engine aus, wenn sie läuft?

php中世界最好的语言
php中世界最好的语言Original
2017-12-04 13:49:142283Durchsuche

Wir wissen, dass die sogenannte JavaScript-Engine eine virtuelle Maschine ist, die auf die Verarbeitung von JavaScript-Skripten spezialisiert ist. Sie ist im Allgemeinen in Webbrowsern enthalten und wird zum Parsen und Ausführen von JavaScript-Skripten verwendet. Lassen Sie uns heute im Detail analysieren, wie die JS-Engine im laufenden Betrieb aussieht.

Die virtuelle JavaScript-Maschine ist eine virtuelle Prozessmaschine. Eine ihrer Funktionen ist ein virtueller Befehlssatz (ISA).

Die beliebteste JavaScript-Engine ist natürlich die V8-Engine von Google. Die V8-Engine wird in Chrome und Node verwendet, aber im Gegensatz zu anderen JavaScript-Engines verwendet V8 nur einen JIT-Compiler und verwendet keinen Interpreter, um JavaScript-Implementierungen auszuführen. Hier ist ein einfaches Diagramm, um ihre Beziehung zu veranschaulichen:

Diese Engine besteht hauptsächlich aus zwei Teilen , die in

gruppiert sind:

Speicherheap: Hier erfolgt die Speicherzuweisung Stack: Hier wird Ihr Code ausgeführt

Laufzeit

Einige Browser-APIs werden häufig verwendet (z. B. setTimeout), diese APIs werden jedoch nicht von der Engine bereitgestellt. Also, woher kamen sie? Tatsächlich ist die tatsächliche Situation hier etwas kompliziert.

Im Bild oben werden bei laufendem Hauptthread ein Heap und ein Stack generiert. Der Code im Stack ruft verschiedene externe APIs auf, die sich in der „Task Queue “ befinden. Verschiedene Ereignisse hinzufügen (klicken, laden, fertig). Solange der Code im Stapel ausgeführt wird, liest der Hauptthread die „Aufgabenwarteschlange“ und führt die diesen Ereignissen entsprechenden Rückruffunktionen

nacheinander aus.

Der Code im Ausführungsstapel (synchrone Aufgabe) wird immer ausgeführt, bevor die „Aufgabenwarteschlange“ (asynchrone Aufgabe) gelesen wird.

Zusätzlich zum Platzieren von Ereignissen für asynchrone Aufgaben kann die „Aufgabenwarteschlange“ auch zeitgesteuerte Ereignisse platzieren, d. h. angeben, nach welcher Zeit bestimmter Code ausgeführt wird.

Daher haben wir auch viele APIs außerhalb der Engine, die wir die vom Browser bereitgestellte Web-API nennen, wie DOM, AJAX, setTimeout usw.

Zusammenfassend lässt sich sagen, dass die JavaScript-Engine bildlich gesprochen eine Maschine ist, die funktionieren kann, und die virtuelle JavaScript-Maschine der Ausführungskern dieser Maschine ist und die JavaScript-Laufzeit die Maschine ist.


Ich glaube, dass Sie die Methoden beherrschen, nachdem Sie diese Fälle gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Verwandte Lektüre:

Zusammenfassung des Front-End-JS-Frameworks und Erläuterung seiner Verwendung

Wie man das verwendet jssplice()-Methode in der JS-Entwicklung

Implementierungsschritte der DOM-Programmierung in HTML5

Das obige ist der detaillierte Inhalt vonWie sieht die JS-Engine aus, wenn sie läuft?. 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