Datentypen in JavaScript
Einfache (grundlegende) Datentypen: Zahl, String, Boolean, Undefiniert, Null
Komplexe (Referenz-)Datentypen: Objekt, Array, Datum, Funktion usw.
Das Folgende ist eine Einführung in den Unterschied zwischen einfachen (grundlegenden) Datentypen und komplexen (Referenz-)Datentypen:
Einfache Datentypen: Werte speichern direkt auf dem Stapel
Komplexe Datentypen: Referenzen auf dem Stapel speichern
Nachdem Sie die Speichermethoden der beiden oben genannten Datentypen verstanden haben, können Sie den Unterschied zwischen ihnen erkennen Die beiden. Du kannst folgende Übungen machen:
var a =10; var b = a; //问:当改变a的值后,b的值是否发生改变 a=20; console.log(b); // 10
var s1 = new Object(); var s2 = s1; //问:改变s1的属性后,s2相同的属性是否改变 s1.name = "mh"; console.log(s2.name); //mh
function f2(arr) { arr = [9,8,7,6,5];//产生新的对象 arr[0]=-100; } var array = [1,2,4,7,5]; f2(array); console.log(array[0]);// 1
Variablenförderung, Funktionsdeklaration in JavaScript und Variablenbereich
Schauen Sie sich zunächst die folgende Interviewfrage an:
var num = 10; fun(); function fun() { console.log(num); var num =20; }
Bevor Sie lernen, Sie Ich werde 10 direkt beantworten und jetzt lernen. Das Konzept der Vorkompilierung in JavaScript kennt das Konzept der Förderung des Schlüsselworts var und das Konzept der Funktionsdeklaration. Sie wissen, dass der obige Code dem folgenden Code entspricht:
var num;//全局作用域 遇到var和function 提升 function fun() { var num ; //局部做用户 遇到var 提升 console.log(num); num =20; } num = 10; fun();
Siehe unten Diese Frage:
//问题:为什么会出现下面的错误? //Uncaught TypeError:fnName is not a function console.log(fnName(1,2)); var fnName = function (a,b) { return a + b; }
Der obige Code entspricht dem folgenden Code:
var fnName; console.log(fnName(1,2)); fnName = function (a,b) { return a + b; }
Da sich die Funktion auf der rechten Seite des Gleichheitszeichens befindet, wird nur var heraufgestuft und der Fehler „Uncaught TypeError: fnName ist keine Funktion“ wird gemeldet.
Um den Umfang von Variablen zu verstehen, können Sie den folgenden Code sehen:
f1(); console.log(c); console.log(b); console.log(a); function f1() { var a = b = c = 20; console.log(c); console.log(b); console.log(a); }
Für var a=b=c=20; Bei kontinuierlicher Zuweisung wird nur a im lokalen Bereich neu deklariert, während die Bereiche von b und c globale Bereiche sind. Daher meldet nur a im globalen Bereich den Fehler „Uncaught ReferenceError: a ist nicht definiert“.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Vergleichsbeispielen zwischen einfachen JavaScript-Datentypen und komplexen Datentypen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!