Heim > Web-Frontend > js-Tutorial > Detaillierte Erläuterung von Vergleichsbeispielen zwischen einfachen JavaScript-Datentypen und komplexen Datentypen

Detaillierte Erläuterung von Vergleichsbeispielen zwischen einfachen JavaScript-Datentypen und komplexen Datentypen

伊谢尔伦
Freigeben: 2017-07-21 13:58:35
Original
3552 Leute haben es durchsucht

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
Nach dem Login kopieren


var s1 = new Object();
var s2 = s1;
//问:改变s1的属性后,s2相同的属性是否改变
s1.name = "mh";
console.log(s2.name);    //mh
Nach dem Login kopieren


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
Nach dem Login kopieren

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;
    }
Nach dem Login kopieren

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();
Nach dem Login kopieren

Siehe unten Diese Frage:


//问题:为什么会出现下面的错误?
      //Uncaught TypeError:fnName is not a function

      console.log(fnName(1,2));
      var fnName = function (a,b) {
        return a + b;
      }
Nach dem Login kopieren

Der obige Code entspricht dem folgenden Code:


var fnName;
      console.log(fnName(1,2));
      fnName = function (a,b) {
        return a + b;
      }
Nach dem Login kopieren

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);
        }
Nach dem Login kopieren

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!

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