Werfen wir einen Blick auf die Vorkompilierung von JavaScript (Zusammenfassung)

Werfen wir einen Blick auf die Vorkompilierung von JavaScript (Zusammenfassung)

JS-Lauftrilogie

js-Ausführungscode ist in drei Schritte unterteilt

  • Syntaxanalyse
  • Vorkompilierung
  • Interpretation

Wenn JavaScript-Code ausgeführt wird, führt er zunächst eine Syntaxanalyse durch, um zu prüfen, ob der Code Fehler auf niedriger Ebene enthält. Anschließend führt er eine Vorkompilierung durch, organisiert die interne Logik und beginnt schließlich mit der zeilenweisen Ausführung des Codes.

Syntaxanalyse

Vor der Ausführung des Codes durchsucht das System den gesamten Code, um zu prüfen, ob Syntaxfehler auf niedriger Ebene vorliegen, z. B. eine fehlende geschweifte Klammer.

Vorkompilierung

Vorkompilierung Auftakt

Die Vorkompilierung erfolgt unmittelbar vor der Ausführung einer Funktion. Der Variablen wird ein Wert zugewiesen, ohne dass sie deklariert wird, und die Variable gehört dem globalen Objekt

a = 3

var b = c = 4

Alle deklarierten globalen Variablen sind Fenstereigenschaften

var a = 1 ===> window.a = 1

Vier Schritte der Vorkompilierung

  1. Erstellen Sie ein AO-Objekt (Activation Object) (das lokale Variablen innerhalb der Funktion speichert)
  2. Suchen Sie die Parameter- und Variablendeklarationen und verwenden Sie die Variablen- und Parameternamen als AO-Attributnamen mit undefinierten Werten
  3. Vereinheitlichung von tatsächlichen und formalen Parametern
  4. Suchen Sie im Funktionskörper nach der Funktionsdeklaration und weisen Sie dem Funktionskörper den Wert zu

Ich erkläre dies anhand eines Beispiels. Sie können auch selbst eine Antwort geben, bevor Sie fortfahren.

Funktion fn(a) {
 konsole.log(a);
 var a = 123;
 konsole.log(a);
 Funktion a() {}
 konsole.log(a);
 var b = Funktion() {};
 console.log(b);
 Funktion d() {}
 konsole.log(d)
}
fn(1);

Der erste Schritt besteht darin, ein AO-Objekt (Activation Object) zu erstellen. Der zweite Schritt besteht darin, die formalen Parameter und Variablendeklarationen zu finden und die Variablen- und formalen Parameternamen als AO-Attributnamen mit undefinierten Werten zu verwenden.

{
 a: undefiniert,
 b: undefiniert,
}

Der dritte Schritt besteht darin, die tatsächlichen Parameter und formalen Parameter zu vereinheitlichen

{
 ein: 1,
 b: undefiniert,
}

Schritt 4: Suchen Sie die Funktionsdeklaration und weisen Sie dem Funktionskörper den Wert zu

{
 a: Funktion a() {},
 b: undefiniert,
 d: Funktion d() {}
}

Kurz bevor die Funktion fn ausgeführt wird, sind die Werte von a, b und d wie oben gezeigt

Das Ergebnis der Ausführung von fn(1) ist also

// ƒ a() {}
// 123
// 123
// ƒ () {}
// ƒ d() {}

Im globalen Bereich ist der Vorkompilierungsprozess etwas anders

  • Erstellen Sie ein GO-Objekt (Global Object) (das globale Variablen innerhalb der Funktion speichert) GO === Fenster
  • Suchen Sie die Parameter- und Variablendeklarationen und verwenden Sie die Variablen- und Parameternamen als GO-Attributnamen mit undefinierten Werten
  • Suchen Sie im Funktionskörper nach der Funktionsdeklaration und weisen Sie dem Funktionskörper den Wert zu

Interpretation

Code zeilenweise ausführen

Übungsfragen

Hier sind ein paar Beispiele, bei Interesse könnt ihr gerne mal reinschauen

Funktion test(a, b) {
 konsole.log(a);
 console.log(b);
 var b = 234;
 console.log(b);
 ein = 123;
 konsole.log(a);
 Funktion a() {}
 var a;
 b = 234;
 var b = Funktion() {};
 konsole.log(a);
 console.log(b);
}
Prüfung(1);
global = 100;
Funktion fn() {
 konsole.log(global);
 global = 200;
 konsole.log(global);
 var global = 300;
}
fn();
var global;

Funktion test() {
 console.log(b);
 wenn (a) {
  var b = 100;
 }
 c = 234;
 console.log(c);
}
var a;
prüfen();
ein = 10;
console.log(c);

Zusammenfassen

In den meisten Fällen verwenden wir die folgende Methode, um den Vorkompilierungsprozess durchzuführen:

  • Funktionsdeklaration, allgemeine Verbesserung
  • Variablendeklaration, Deklarationserhöhung

Wenn Sie auf eine komplexe Situation stoßen, können Sie das Problem nur auf die primitivste Art und Weise lösen.

Dies ist das Ende dieses Artikels zum Verständnis der JavaScript-Vorkompilierung (Zusammenfassung). Weitere relevante Inhalte zur JavaScript-Vorkompilierung finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Eine kurze Analyse der JavaScript-Vorkompilierung und impliziter globaler Variablen
  • Beispiel zur Erläuterung des JavaScript-Vorkompilierungsprozesses
  • Detaillierte Erklärung des Vorkompilierungsprinzips von JavaScript
  • Die "Vorkompilierungsphase" und "Ausführungsphase" des JavaScript-Laufprozesses
  • Eliminieren Sie Leistungsengpässe durch Vorkompilieren von JSP

<<:  So exportieren Sie eine CSV-Datei mit Header in MySQL

>>:  Lösung für das Problem, dass die Umleitung der Crontab-Ausgabe unter Linux nicht wirksam wird

Artikel empfehlen

So optimieren Sie Bilder, um die Website-Leistung zu verbessern

Inhaltsverzeichnis Überblick Was ist Bildkomprimi...

Zusammenfassung der für MySQL erforderlichen allgemeinen Kenntnisse

Inhaltsverzeichnis Primärschlüsseleinschränkung E...

Einführung und Verwendung des JS-Beobachtermodus

Inhaltsverzeichnis I. Definition 2. Anwendungssze...

JavaScript-Plugin-Kapselung für Tabellenwechsel

In diesem Artikel wird der Kapselungscode von Jav...

JavaScript imitiert die Spezialeffekte der Jingdong-Lupe

In diesem Artikel wird der spezifische Code von J...

So installieren Sie den Zookeeper-Dienst auf einem Linux-System

1. Erstellen Sie den Ordner /usr/local/services/z...

mysql5.7.21.zip Installations-Tutorial

Der detaillierte Installationsprozess von mysql5....

Natives JS zur Implementierung der Dropdown-Box-Auswahlkomponente

In diesem Artikelbeispiel wird der spezifische JS...

Verwenden Sie Docker, um ein verteiltes lnmp-Image zu erstellen

Inhaltsverzeichnis 1. Verteilte LNMP-Image-Produk...

Docker stellt Mysql, .Net6, Sqlserver und andere Container bereit

Inhaltsverzeichnis Installieren Sie Docker unter ...

Verschiedene Möglichkeiten zum Ändern der Hintergrundbildfarbe mit CSS3

CSS3 kann die Farbe von Bildern ändern. Ab sofort...

Installieren Sie Linux mithilfe einer virtuellen VMware-Maschine (CentOS7-Image).

1. VMware herunterladen und installieren Verknüpf...