Wie analysiert der Browser JavaScript? Dieser Artikel führt Sie in das Prinzip der Browser-Analyse von JavaScript ein. Freunde in Not können sich darauf beziehen. [Empfohlenes Video-Tutorial: JavaScript-Video-Tutorial]
Browser-Parsing-JavaScript-Prinzipfunktionen:
1
2. Schwach typisiertes JavaScript muss beim Definieren nicht definiert werden. Der Datentyp wird anhand des Variablenwerts bestimmt.
var a = 10; //数字类型 var a = true //boolean类型
(Starker Typ: Beim Definieren einer Variablen. Sie müssen den Typ der Variablen definieren: Beispielsweise bestimmt int a = 10 boolean a = true in Java, C# direkt den Datentyp)
3. Interpretieren und ausführen, zeilenweise ausführen Zeile
Javascript-Ausführungsprozess
1. Grammatikerkennung
Es geht darum, festzustellen, ob Sie grundlegende Grammatikfehler haben. wie Chinesisch, Schlüsselwortfehler...
2. Lexikalische Analyse (Vorkompilierung)
Zeile für Zeile ausführen
Lexikalische Analyse
Vorkompilierungsprozess (Zwei Fälle)
1. Global (direkt der Code im Skript-Tag, ohne Funktionsausführung)
Nehmen Sie die folgende Demo als Beispiel:
console.log(a); console.log(b) var a = 100; console.log(a) var b = 200 var c = 300 function a(){ } function fun(){ }
Vor der Ausführung:
1), generieren Sie zunächst ein GO-Objekt (Global Object), das nicht sichtbar, aber simuliert werden kann zur Analyse
GO = { //自带的属性都不写 }
2), analysieren Variablendeklaration , der Variablenname ist der Attributname, der Wert ist undefiniert
GO = { a : undefined, b : undefined, c : undefined }
3), analysieren die Funktionsdeklaration, die Der Funktionsname ist der Attributname, der Wert ist der Funktionskörper. Wenn der Funktionsname und der Variablenname identisch sind, werden sie rücksichtslos überschrieben
GO = { a : function a(){ }, b : undefined, c : undefined, fun : function fun(){ } }
An diesem Punkt ist GO das endgültige Objekt, das vorkompiliert wird. und die lexikalische Analyse ist abgeschlossen.
4), Zeile für Zeile ausführen, analysieren (Variablendeklaration, Funktionsdeklaration), keine Sorge, einfach Wert zuweisen (Variablenzuweisung)
a赋了一次值,值改变为100 GO = { a : 100, b : undefined, c : undefined, fun : function fun(){ } }
2, Lokal (wenn die Funktion ausgeführt wird)
Nehmen Sie diese Demo als Beispiel:
num = 100510)
1), wenn vorkompiliert
GO = { num : undefined, fun : function }
2), Ausführungsprozess
GO = { num : 100, fun : function }
3) Funktionsaufrufe generieren auch ihren eigenen Bereich (AO: aktives Objekt). Wenn eine Funktion aufgerufen wird, wird sie einen Moment vor der Ausführung generiert. Es werden mehrere AO
ⅰ generiert. Der formale Parameter wird im Moment vor der Ausführung der Funktion
fun.AO = { }
ⅱ verwendet Objekt, und der tatsächliche Parameter wird als Attributwert des Objekts verwendet. Der Variablenname ist der Attributname und der Wert ist undefiniert Hat den gleichen Namen, werden keine Änderungen vorgenommen. Der Funktionsname ist der Attributname und der Wert ist der Funktionskörper Gleicher Name, er wird rücksichtslos überschrieben (hier gibt es keine Funktionsdeklaration, überspringen Sie sie)
4) Zeile für Zeile ausführen
Beispiele:
Hier sehen wir uns ein paar Beispiele an:
Beispiel 1:fun.AO = { num : 5 }
Beispiel 2:
fun.AO = { num : 5 }
Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Lernen aller hilfreich sein wird. Weitere spannende Inhalte finden Sie in den entsprechenden Tutorial-Kolumnen auf der chinesischen PHP-Website! ! !
Das obige ist der detaillierte Inhalt vonWie analysieren Browser JavaScript? Einführung in analytische Prinzipien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!