Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie man Typen, Parameterübergabe und Ausführungsumgebung in JavaScript versteht

伊谢尔伦
Freigeben: 2017-07-18 10:36:26
Original
1326 Leute haben es durchsucht

Die Grundtypwerte sind: undefiniert, NUll, Boolean, Number und String. Ihre Werte werden im Stapelbereich gespeichert und wir greifen auf sie zu Wert.

(1) Werttyp: numerischer Wert, boolescher Wert, null, undefiniert.
(2) Referenztyp: Objekt, Array, Funktion.

Wenn der zugewiesene Wert ein Referenztyp ist, muss für diesen Wert Platz im Heap-Speicher reserviert werden. Da die Größe solcher Werte nicht festgelegt ist (Objekte haben viele Eigenschaften und Methoden), können sie nicht im Stapelspeicher gespeichert werden. Die Größe der Speicheradresse ist jedoch fest, sodass die Speicheradresse im Stapelspeicher gespeichert werden kann.

<script type="text/javascript”>
var box = new Object(); //创建一个引用类型
var box = "lee";  //基本类型值是字符串
box.age = 23;  //基本类型值添加属性很怪异,因为只有对象才可以添加属性。
alert(box.age); //不是引用类型,无法输出;
</script>
Nach dem Login kopieren

Kurz gesagt, der Heap-Speicher speichert Referenzwerte und der Stapelspeicher speichert feste Typwerte.

<script type="text/javascript">
  var man = new Object();//man指向了栈内存的空间地址
  man.name = "Jack";
  var man2 = man;//man2获得了man的指向地址

  alert(man2.name);//两个都弹出Jack
  alert(man.name);
</script>
Nach dem Login kopieren

Variablenwert kopieren

Sehen Sie sich das folgende Beispiel an:

<script type="text/javascript">
  var man = new Object();//man指向了栈内存的空间地址
  man.name = "Jack";
  var man2 = man;//man2获得了man的指向地址

  man2.name = "ming";//因为他们都指向同一个object,同一个name,不管修改谁,大家都修改了
  alert(man2.name);//两个都弹出ming
  alert(man.name);
</script>
Nach dem Login kopieren

Aus dem oben Gesagten kann geschlossen werden, dass in Bezug auf Beim Kopieren von Variablen gibt es auch einen Unterschied zwischen Basistypen und Referenztypen. Basistypen kopieren den Wert selbst, während Referenztypen die Adresse kopieren.

Übergabe von Parametern

In ECMAScript werden alle Funktionsparameter als Wert übergeben.

<script type="text/javascript">
   function box(num){   //按值传递
     num+=10;
     return num;
   }

   var num = 10;
   var result = box(num);
   alert(result); //如果是按引用传递,那么函数里的num会成为类似全局变量,把外面的number替换掉
   alert(num);  //也就是说,最后应该输出20(这里输出10)
</script>
Nach dem Login kopieren

Javascript wird nicht als Referenz übergeben Bei der Referenzübergabe handelt es sich bei den Variablen innerhalb der Funktion um globale Variablen, auf die auch extern zugegriffen werden kann. Aber das ist offensichtlich unmöglich.

Ausführungsumgebung

Die Ausführungsumgebung ist eines der wichtigsten Konzepte in JavaScript. Die Ausführungsumgebung definiert die Variablen oder Funktionen, die Zugriff auf andere Daten haben.

Die globale Ausführungsumgebung ist die am weitesten entfernte Ausführungsumgebung. In einem Webbrowser ist die globale Ausführungsumgebung das Fensterobjekt. Daher werden alle Funktionen globaler Variablen als Eigenschaften und Methoden des Fensters erstellt.


<script type="text/javascript">
   var name = "Jack";      //定义全局变量
   function setName(){
     return "trigkit4";
   }

   alert(window.name);    //全局变量,最外围,属于window属性
   alert(window.setName()); //全局函数,最外围,属于window方法
</script>
Nach dem Login kopieren

Wenn der Code in der Ausführungsumgebung ausgeführt wird, wird die Umgebung zerstört und die darin gespeicherten Variablen und Funktionen werden ebenfalls zerstört Umgebung, Sie müssen es zerstören. Es wird zerstört, nachdem alle Programme ausgeführt oder die Webseite fertiggestellt wurde.

Entfernen Sie die lokale Variable von var

<script type="text/javascript">
   var name = "Jack";
   function setName(){
     name = "trigkit4";  //去掉var变成了全局变量
   }

   setName();
   alert(name);//弹出trigkit4
</script>
Nach dem Login kopieren

Durch die Übergabe von Parametern ist es auch eine lokale Variable

<script type="text/javascript">
   var name = "Jack";
   function setName(name){  //通过传参,也是局部变量
     alert(name);
   }

   setName("trigkit4");//弹出trigkit4
   alert(name);//弹出Jack
</script>
Nach dem Login kopieren

Der Funktionskörper auch enthält Funktionen, nur diese. Nur Funktionen können auf die innere Funktionsschicht

<script type="text/javascript">
   var name = "Jack";
   function setName(){
     function setYear(){  //setYear()方法的作用域在setName()内
       return 21;
     }
   }
   alert(setYear());//无法访问,出错 
</script>
Nach dem Login kopieren

zugreifen, auf die über die folgenden Methoden zugegriffen werden kann:

<script type="text/javascript">
   var name = "Jack";
   function setName(){
     function setYear(){  //setYear()方法的作用域在setName()内
       return 21;
     }
     return setYear();
   }
   alert(setName()); //弹出21
</script>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie man Typen, Parameterübergabe und Ausführungsumgebung in JavaScript versteht. 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