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.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!