1. Der Speicherraum in JS ist in zwei Typen unterteilt: Stapelspeicher und Heap -Speicher
Stack Memory: Bietet eine Umgebung für die Ausführung von JS -Code. Speichert die Werte grundlegender Datentypen; -> Globaler Bereich oder privater Bereich sind tatsächlich Stapelspeicher
Heap -Speicher: Speichert den Wert des Referenzdatentyps (das Objekt speichert den Attributnamen und den Attributwert darin, und die Funktion speichert den Code in der Funktionskörper als Zeichenfolge).
2. Wenn der Browser unsere HTML -Seite lädt, bietet er zunächst eine Umgebung für die Ausführung von JS -Code -> globaler Umfang (global-> Fenster).
3. Bevor der JS -Code ausgeführt wird, muss der Browser einige Dinge für sich selbst ausführen: Deklarieren oder Definieren Sie alle Schlüsselwörter der VAR/Funktion im Voraus -> "Vorausplanung" (Variablenklang)
Deklarieren -> Sagen Sie dem Browser, dass ich so etwas habe, wie z. B. Var Num1; Funktion fn;
Definiert -> Wert der deklarierten Variablen oder Funktion zuweisen, z. B. Num1 = 12; fn = function () {}
[Wichtig] Variablen erklären nur, dass sie nicht definiert sind, der Standardwert ist undefiniert (undefiniert).
4. Die Verarbeitung von VaR und Funktion unterscheidet sich in der Vorinterpretationsphase.
VaR -> Wenn die Voraussetzung durchgeführt wird, wird die Variable im Voraus deklariert. Die Zuordnungsoperation wird nur ausgeführt, wenn der Code ausgeführt wird.
Funktion -> Während der Voraussetzung werden alle Erklärungen und Definitionen im Voraus abgeschlossen (wenn der Code ausgeführt wird, wird er direkt übersprungen)
[Wichtig] Am Anfang werden nur Vorinterpretationen im Fenster durchgeführt. Die aktuellen Zeichenfolgen, die in der FN-Funktion gespeichert sind, sind alle Zeichenfolgen, daher hat Var Total keine praktische Bedeutung, sodass keine Vorinterpretationen durchgeführt werden-> "Vorinterpretationen treten im aktuellen Bereich auf."
console.log (obj); //-> undefined var obj = {name: "zhang shanshan", Alter: 10}; Funktion Fn (Num1, Num2) {// Überspringen Sie direkt, wenn der Code in diese Zeile ausgeführt wird, da wir während der Voraussetzung die Deklaration und Definition var insgesamt = num1 + num2 abgeschlossen haben; console.log (insgesamt); } var num1 = 12; FN (Num1, 100); // Fn ausführen, dem Wert der globalen Variablen Num1 dem Parameter NUM1 zuweisen und dem Parameter Num2 100 zuweisen5. Die unter dem globalen Bereich deklarierte Variable ist eine globale Variable
Variablen, die im privaten Bereich deklariert sind, sind private Variablen; Die formalen Parameter der Funktion sind auch private Variablen;
Wie kann man feststellen, ob die in einer Funktion erscheinen Variablen privat oder global sind?
Sehen Sie zuerst nach, ob es sich um einen formalen Parameter handelt, und sehen Sie dann an, ob es im privaten Bereich deklariert wurde (hat sich unter anderem unterschieden). Eine der beiden ist eine private Variable. Dann, egal wo es in der aktuellen Funktion erscheint, ist privat und es gibt keine Beziehung zwischen ihm und dem globalen; Wenn es auch nicht so ist, bedeutet es, dass es nicht privat ist, dann suchen Sie nach dem vorherigen Bereich ...
6. Wenn die Funktion ausgeführt wird, wird ein neuer privater Bereich (Stack -Speicher) für den Code in der Funktionsbehörde gebildet.
1) Zuweisen formalen Parametern Wert zuweisen
2) Vorinterpretation unter privatem Umfang
3) Codeausführung im privaten Bereich
Der neue private Bereich schützt auch die privaten Variablen im Inneren vor externen Einflüssen. Wir setzen diesen Schutzmechanismus der Funktion -> "Verschluss ein
Differenz: Diejenigen mit VAR können deklariert werden, bevor der Code ausgeführt wird, während diejenigen ohne VAR nicht im Voraus deklariert werden können
1. Voraussetzung ist erforderlich, unabhängig davon, ob die Bedingungen wahr sind oder nicht.
Fenstervoraussetzung: var a; -> Fenster.A; if (! ("a" im Fenster)) {// "a" im Fenster -> True var a = "us"; } console.log (a); //-> undefiniert2. Die Vorinterpretation tritt nur auf der linken Seite von "=" auf, nur die linke Seite ist eine Vorinterpretation, und die rechte Seite ist der Wert ohne Vorinterpretation.
Funktionsausdruck anonymer Funktionen: Weisen Sie den Teil der Funktionsdefinition als Wert einem Ereignis zu, das eine Variable oder ein Element ist.
Beim Vorauserplanung: var fn; -> Der Standardwert von FN ist undefiniert
fn (); //-> undefined () Uncortht TypeError: FN ist keine Funktion, die in js && ausgeführt werden kann. Wenn der obige Code oben JS gemeldet wird, wird der folgende Code nicht ohne spezielle Verarbeitungsvar fn = function () {console.log ("OK") ausgeführt. }; fn (); Bei Voraussetzung: fn = xxxfff000 fn (); //-> "ok" Funktion fn () {console.log ("OK"); } fn (); //-> "ok" Funktion fn () {console.log ("ok"); } fn (); //-> "ok"3. Der Code unterhalb der Rückgabe in der Funktionsbehörde wird nicht mehr ausgeführt, aber der folgende Code muss an der Voraussetzung teilnehmen. und die Dinge hinter der Rückkehr müssen verarbeitet werden, aber da sie als Wert zurückgegeben wird, wird keine Voraussetzung durchgeführt.
var insgesamt = 300; Funktion fn () {console.log (insgesamt); Rückgabefunktion Summe () {}; // Rückgabe ist, den Wert in der Funktion an die Außenseite der Funktion zurückzugeben, die die Speicheradresse zurückgibt, die der Funktion an die Außenseite der Funktion entspricht, zum Beispiel: Return XXXFFFF111; Der nachstehende Code in der Funktionskasse führt Var Total = 10 nicht aus; } fn ();4. Die Funktion der anonymen Funktion ist im globalen Bereich nicht erklärt.
Die Selbstversorgungsfunktion der anonymen Funktion: Die Definition und Ausführung werden zusammen abgeschlossen
(Funktion (num) {}) (100);
5. Bei der Voraussetzung, wenn der Name wiederholt wird, wird er nur einmal deklariert und nicht wiederholt, aber die Zuordnung wird noch einmal wiederholt.
Wenn der Name einer Variablen und der Name einer Funktion mit dem Namen einer Funktion in JS übereinstimmen, wird er als wiederholt angesehen
Voraussetzung:
var fn; deklarieren fn = xxxfff000; [Deklaration] Definieren Sie nicht fn = xxxfff111; [Deklaration] Nicht + Definition -> fn = xxxfff111 var fn = 12; // window.fn = 12 Funktion fn () {//window.fn=function () {}} Funktion fn () {}Das obige ist alle relevanten Verständnisse über JS-Vorauserklärungen, die Ihnen vom Herausgeber zur Verfügung gestellt wurden. Ich hoffe, Sie werden Wulin.com mehr unterstützen ~