Front-End-JavaScript-Funktionsprinzip

Front-End-JavaScript-Funktionsprinzip

1. Was ist eine JavaScript-Engine?

JavaScript -Engine ist ein Computerprogramm, dessen Hauptfunktion darin besteht, während der Ausführung von JavaScript Quellcode in Maschinencode zu kompilieren.

Jeder größere Webbrowser verfügt über seine eigene JavaScript Engine, die normalerweise vom web -Anbieter entwickelt wird.

  • Google Chrome V8。
  • Mozilla Firefox Spider Monkey。
  • Safari Javascript Core Webkit。
  • Edge (Internet Explorer)

Frühere JavaScript Engines wurden hauptsächlich in Webbrowsern verwendet, aber mit dem Aufkommen von nodejs wurde diese Einschränkung aufgehoben.

2. V8-Motor

V8 enthält parser , einen Interpreter ( Ignition ) und einen optimierenden Compiler ( TurboFan ).

Parser: wird zum Generieren eines abstrakten Syntaxbaums verwendet.

Interpreter (Ignition): Wandelt Quellcode in Bytecode um.

Optimierender Compiler ( TurboFan ): führt einige optimierende Kompilierungsoptimierungen durch, wie etwa Inline-Caching.

Nachfolgend wird der allgemeine Arbeitsablauf des V8-Motors beschrieben.

  • Zunächst generiert der Parser einen abstrakten Syntaxbaum.
  • Der Interpreter generiert dann Bytecode im V8-Format basierend auf dem Syntaxbaum.
  • Der optimierende Compiler kompiliert dann den Bytecode in Maschinencode.

3. Laufzeitumgebung

In der Browser-Ausführungsumgebung stellt der Browser Web API wie HTTP-Anfragen, Timer, Ereignisse usw. bereit.

In der Server-Betriebsumgebung stellt nodejs eine API bereit.

Unten sehen Sie die Architektur von JavaScript , wenn es in einem Browser ausgeführt wird. Sie umfasst einen Speicherheap, einen Speicherstapel, eine Ereignisschleife und eine Rückrufwarteschlange.

Stapel
Haufen
Aufrufliste
Rückrufwarteschlange
Ereignisschleife

4. Laufzeitaufrufstapel

Der folgende Code zeigt die Änderungen im Aufrufstapel der JavaScript Ausführung.

Funktion add(x, y) {
    gib x + y zurück;
}

Funktion drucken(x, y) {
    Konsole.log('x+y=',add(x, y))
}

drucken(1, 3)

5. Asynchrone Aufgaben

JavaScript führt zuerst die print aus und ruft dann Web API setTimeout() auf. Web API speichert die Rückruffunktion von setTimeout() und fügt die Rückruffunktion nach 3 Sekunden zur Rückrufwarteschlange hinzu. Die Ereignisschleife stellt fest, dass der Aufrufstapel leer ist, und verschiebt die Rückruffunktion in der Warteschlange zur Ausführung in den Aufrufstapel.

Funktion add(x, y) {
    gib x + y zurück;
}

Funktion drucken(x, y) {
    setzeTimeout(Funktion (){
        Konsole.log('x+y=',add(x, y))
    }, 3000)
}

drucken(1, 3)

6. Zusammenfassung

JavaScript läuft hauptsächlich auf der JavaScript -Engine und der Laufzeitumgebung. Die Engine übersetzt den JS-Quellcode in vom Computer verstandenen Maschinencode und die Laufzeitumgebung stellt einige APIs und Laufzeitimplementierungen für die Kommunikation mit dem zugrunde liegenden Computer bereit.

Dies ist das Ende dieses Artikels über die Funktionsprinzipien von Front-End-JavaScript. Weitere relevante Inhalte zu den Funktionsprinzipien von JavaScript finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Verstehen der Ausführungsreihenfolge des Javascript-Betriebsmechanismus
  • Beispielanalyse des JavaScript-Betriebsmechanismus
  • Analyse des Funktionsprinzips von JavaScript
  • Effiziente Codeanalyse in JavaScript durchführen
  • Kennen Sie die drei Schritte zum Ausführen von JavaScript js?

<<:  Beim Ändern eines Datensatzes in MySQL lautet die Aktualisierungsoperation Feld = Feld + Zeichenfolge

>>:  So aktivieren Sie den Fernzugriff in Docker

Artikel empfehlen

JS-Funktionsaufruf, Anwenden und Binden einer superdetaillierten Methode

Inhaltsverzeichnis JS-Funktionsaufruf, Apply- und...

Detaillierte Erläuterung des MySQL InnoDB-Sekundärindex-Sortierbeispiels

Sortierproblem Ich habe kürzlich auf Geek Time „4...

8 Befehle zur effektiven Verwaltung von Prozessen in Linux

Vorwort Die Rolle des Prozessmanagements: Integri...

Zusammenfassung der Probleme mit der Mysql-connector-java-Treiberversion

Problem mit der Mysql-Connector-Java-Treiberversi...

Langsame MySQL-Abfrage: Langsame Abfrage aktivieren

1. Was nützt eine langsame Abfrage? Es kann alle ...

Detaillierte Erklärung der Linux-Befehle und der Dateisuche

1. Führen Sie eine Dateinamensuche durch which (S...

Hinweise zur Verwendung von Textarea

Warum speziell Textbereich erwähnen? Denn der Text...

Eine kurze Analyse der Unterschiede zwischen „:=“ und „=“ in MySQL

= Nur beim Setzen und Aktualisieren wirkt es wie ...

Lösung für das MySQL-Anmeldewarnungsproblem

1. Einleitung Wenn wir uns bei MySQL anmelden, wi...