Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Interpretation der JS-Vorinterpretation

亚连
Freigeben: 2018-05-21 09:19:05
Original
1288 Leute haben es durchsucht

Jetzt werde ich Ihnen ein relevantes Verständnis der JS-Vorinterpretation vermitteln. Lassen Sie mich es jetzt mit Ihnen teilen und es allen als Referenz geben.

1. Der Speicherplatz in JS ist in zwei Typen unterteilt: Stapelspeicher und Heapspeicher.

Stapelspeicher: Bietet eine Umgebung für die Ausführung von JS-Code Typen Wert; ->Globaler Bereich oder privater Bereich sind eigentlich Stapelspeicher

Heapspeicher: Speichert Werte von Referenzdatentypen (Objekte speichern Attributnamen und Attributwerte darin, und Funktionen speichern das Attribut Namen und Attributwerte im Funktionskörper) Der Code wird als Zeichenfolge gespeichert)

2. Wenn der Browser unsere HTML-Seite lädt, stellt er zunächst eine Umgebung für die Ausführung von JS-Code bereit -> ; globaler Bereich (global-> Fenster)

3. Bevor der JS-Code ausgeführt wird, muss der Browser etwas selbst tun: alle Schlüsselwörter im Voraus mit var/function deklarieren oder definieren -> "Vorinterpretation" (Variabler Ton)

Sagen Sie dem Browser, dass ich so etwas habe, wie zum Beispiel var num1; -> Geben Sie uns deklarierte Variablen oder Funktionszuweisungen an, z. B. num1=12;

4. Var und Funktion werden in der Vorinterpretationsphase unterschiedlich verarbeitet

var -> wird erst deklariert, wenn der Code ausgeführt wird. Funktion -> direkt übersprungen)

[Wichtig] Zu Beginn wird nur die Vorinterpretation unter Fenster durchgeführt. Derzeit sind alle in der fn-Funktion gespeicherten Zeichenfolgen Zeichenfolgen, daher hat var total keine praktische Bedeutung, also keine Vorinterpretation. Die Interpretation wird durchgeführt -> „Vorinterpretation findet in der aktuellen Funktion statt“

console.log(obj);//->undefined
 var obj = {name: "张珊珊", age: 10};
 function fn(num1, num2) {//代码执行到这一行的时候直接的跳过,因为在预解释的时候我们已经完成了声明加定义
var total = num1 + num2;
 console.log(total);
 }
 var num1 = 12;

 fn(num1, 100);//执行fn,把全局变量num1的值赋值给形参num1,把100赋值给形参num2
Nach dem Login kopieren

im Gültigkeitsbereich 5. Variablen, die im globalen Gültigkeitsbereich deklariert werden, sind globale Variablen

Variablen Im privaten Bereich deklariert sind private Variablen; Funktionen Formale Parameter sind ebenfalls private Variablen;Wie kann man feststellen, ob eine in einer Funktion erscheinende Variable privat oder global ist?

Überprüfen Sie zunächst, ob es sich um eine handelt formalen Parameter und überprüfen Sie dann, ob er in einem privaten Bereich deklariert wurde (Haben Sie schon einmal var verwendet?). Eine der beiden ist eine private Variable, also ist sie unabhängig davon, wo sie in der aktuellen Funktion erscheint, privat und hat nichts Wenn es keines von beiden gibt, bedeutet dies, dass es nicht privat ist, dann suchen Sie in seinem oberen Bereich...

6 Für den Code im Funktionskörper wird ein privater Bereich (Stapelspeicher) gebildet. Ausführung;

1) Zuweisen von Werten zu formalen Parametern2) Vorinterpretation im privaten Bereich 3) Codeausführung im privaten Bereich

Neu gebildet durch Der private Bereich schützt auch die privaten Variablen im Inneren vor der Außenwelt. Wir verwenden diesen Schutzmechanismus der Funktion -> „Abschluss“

Unterschied: diejenigen mit var können vor der Ausführung des Codes deklariert werden, ohne var kann nicht im Voraus deklariert werden

1. Unabhängig davon, ob die Bedingung wahr ist oder nicht, muss eine Vorinterpretation durchgeführt werden

window预解释:var a; -> window.a;
 if (!("a" in window)) {//"a" in window -> true
 var a = "我们";
 }
console.log(a);//->undefined
Nach dem Login kopieren

2. Eine Vorinterpretation erfolgt nur, wenn auf der linken Seite von „=" nur die linke Seite vorinterpretiert wird und der Wert auf der rechten Seite nicht vorinterpretiert wird

Funktionsausdruck einer anonymen Funktion: Weisen Sie den durch die Funktion definierten Teil als Wert zu. Wenn Ereignisse von Variablen oder Elementen vorinterpretiert werden: var fn; -> von fn ist undefiniert

fn();//->undefined() Uncaught TypeError: fn is not a function JS中只有函数可以执行 && JS上面的代码如果报错了,在不进行任何的特殊处理情况下我们下面的代码都不在执行了
var fn = function () {
 console.log("ok");
 };
 fn();

预解释的时候:fn=xxxfff000
 fn();//->"ok"
 function fn() {
 console.log("ok");
 }
 fn();//->"ok"
Nach dem Login kopieren

3. Der folgende Code im Funktionskörper wird nicht mehr ausgeführt, aber der folgende Code muss an der Vorinterpretation teilnehmen und die Dinge nach der Rückgabe müssen verarbeitet werden, aber weil es wird als Wert zurückgegeben, es wird nicht vorinterpretiert;

var total = 300;
 function fn() {
 console.log(total);
 return function sum() {};//return是把函数中的值返回到函数的外面,这里是把function对应的内存地址返回的到函数的外面,例如:return xxxfff111;函数体中return下面的代码都不在执行了
var total = 10;
 }
 fn();
Nach dem Login kopieren

4 Die Funktion der anonymen Funktion wirkt global. Es gibt keine Vorinterpretation unter der Domäne

Selbstausführende Funktion der anonymen Funktion: Definition und Ausführung werden zusammen abgeschlossen

(function(num){})(100);

5. Wenn Sie während der Vorinterpretation auf einen doppelten Namen stoßen, deklarieren Sie ihn nur einmal, ohne wiederholte Deklarationen, aber die Zuweisung muss trotzdem wiederholt werden

Wenn der Name der Variablen und der Name der Funktion in JS Sie werden auch als Duplikate gezählt

Vorerklärung:

var fn; 声明
fn = xxxfff000; [声明]不要了+定义
fn = xxxfff111; [声明]不要了+定义
->fn=xxxfff111
 var fn = 12;//window.fn=12
 function fn() {//window.fn=function(){}
 }
 function fn() {
 }
Nach dem Login kopieren

Das Obige habe ich für alle zusammengestellt. Ich hoffe, dass es in Zukunft für alle hilfreich sein wird.

Verwandte Artikel:

Mehrere Methoden zum Löschen eines oder mehrerer Elemente in einem Array mit Js

Details Apropos Eigenschaften und Methoden des integrierten Objekts Math in
js

(auf einen Blick klar)

JSON-Objekt (Bild- und Text-Tutorial, einfach und grob )

Das obige ist der detaillierte Inhalt vonDetaillierte Interpretation der JS-Vorinterpretation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!