Heim  >  Artikel  >  Web-Frontend  >  Was sind die js-Datentypen? Zusammenfassung der Datentypen in js

Was sind die js-Datentypen? Zusammenfassung der Datentypen in js

不言
不言Original
2018-08-07 15:27:113521Durchsuche

Welche Datentypen gibt es in js? Die Datentypen von js sind in Grundtypen und Referenztypen unterteilt, nämlich: Number, String, Boolean, Undefiniert und Null. Es gibt drei Referenzdatentypen von js, nämlich: Objekt, Funktion, Array; dieser Artikel fasst die Datentypen von js für alle zusammen.

Werfen wir zunächst einen Blick auf den Typ des Operators:

Da Variablen in js lose typisiert sind, bietet sie eine Möglichkeit, den Datentyp der aktuellen Variablen zu erkennen . , das ist das Schlüsselwort „typeof“. Nachdem der Operator „typeof“ für den Nulltyp ausgeführt wurde, lautet das Ergebnis, dass der Nulltyp als leere Objektreferenz behandelt wird.

1. js-Basisdatentypen

1. Zahlentyp enthält Ganzzahlen und Gleitkommazahlen (Gleitkommazahlen müssen einen Dezimalpunkt und mindestens eine Nachkommastelle enthalten). Sehr große oder sehr kleine Zahlen können in wissenschaftlicher (Exponential-)Notation geschrieben werden.

NaN: nicht numerischer Typ. Merkmale: ① Jede Operation, an der NaN beteiligt ist, gibt NaN zurück. ② NaN ist nicht gleich sich selbst. Die Funktion

isNaN() wird verwendet, um zu überprüfen, ob ihr Argument ein nicht numerischer Wert ist.

isNaN(123) //false isNaN("hello") //true

2. String-Typ

String hat Längenattribut.

String-Konvertierung: Transformationsfunktion String(), geeignet für jeden Datentyp (null, undefiniert wird nach der Konvertierung null und undefiniert sein); toString()-Methode ist null, definiert hat keine toString()-Methode.

3. Boolescher Typ

Dieser Typ hat nur zwei Werte, wahr und falsch

4 >

Es gibt nur einen Wert, den undefinierten Wert. Wenn eine Variable mit var deklariert, aber nicht initialisiert wird, ist der Wert der Variablen undefiniert.

5. Nulltyp

Der Nulltyp wird als Nullobjektzeiger betrachtet.

6. Objekttyp

Objekt in js ist eine Sammlung von Eigenschaften und Methoden. Hier sprechen wir von Referenztypen. Dabei handelt es sich um eine Datenstruktur, die zum gemeinsamen Organisieren von Daten und Funktionen verwendet wird. Referenztypen werden manchmal als Objektdefinitionen bezeichnet, da sie die Eigenschaften und Methoden einer Objektklasse beschreiben.

2. js-Referenzdatentypen

1. Objekttyp

Die meisten Typwerte, die wir sehen, sind Instanzen des Objekttyps Es gibt zwei Möglichkeiten, Objektinstanzen zu erstellen.

Die erste Möglichkeit besteht darin, den neuen Operator gefolgt vom Objektkonstruktor zu verwenden, wie unten gezeigt

typeof   123   //Number
typeof   'abc'  //String
typeof    true       //Boolean
typeof    undefined   //Undefined
typeof    null        //Object
typeof    { }           //Object
typeof    [ ]           //Object
typeof    console.log()       //Function
Die zweite Möglichkeit besteht darin, die Objektliteralnotation zu verwenden, wie unten gezeigt
var person = new Object();
person.name = "Micheal";
person.age = 24;

2. Array-Typ

Jedes Element des Arrays kann zum Speichern beliebiger Datentypen verwendet werden, d. h. die erste Position des Arrays kann verwendet werden Um eine Zeichenfolge zu speichern, speichert die zweite Position den Wert und die dritte Position das Objekt.... Darüber hinaus kann die Größe des Arrays dynamisch angepasst werden.

Es gibt zwei grundlegende Möglichkeiten, ein Array zu erstellen Die erste besteht darin, den Array-Konstruktor zu verwenden, wie unten gezeigt

var person = {
  name : "Micheal",
  age : 24
};

Die zweite besteht darin, die Array-Literal-Notation zu verwenden. Wie unten gezeigt

var colors = new Array("red","blue","yellow");

3. Funktionstyp

Jede Funktion ist eine Instanz des Funktionstyps und verfügt über dieselben Eigenschaften und Methoden wie andere Referenztypen. Funktionen werden normalerweise mithilfe der Funktionsdeklarationssyntax definiert, wie unten gezeigt:

var colors = ["red","blue","yellow"];

Dies ähnelt der Definition von Funktionen mithilfe von Funktionsausdrücken.

function sum(num1,num2){
  return num1 + num2;
};
Mit anderen Worten, js ist entsprechend der Speichermethode in Werttypen und Referenztypen unterteilt. Was ist also der Unterschied zwischen ihren Berechnungen?

3. Der Unterschied zwischen Werttypen und Referenztypen

1. Werttypen besetzen Der Speicherplatz ist fest und wird im Stapel gespeichert (wenn eine Methode ausgeführt wird, erstellt jede Methode ihren eigenen Speicherstapel, und die in dieser Methode definierten Variablen werden nacheinander in diesen Stapelspeicher eingefügt. Als Ausführung der Methode Am Ende wird auch der Speicherstapel der Methode zerstört. Daher werden alle in der Methode definierten Variablen im Stapelspeicher abgelegt und die Werte einiger Objekte gespeichert Variablen werden im Stapel gespeichert, und die im Stapel gespeicherte Referenzvariable zeigt auf das Array oder die Objektadresse im Heap, weshalb sich eine Änderung des Referenztyps immer auf andere Referenzvariablen auswirkt, die auf diese Adresse verweisen)

Was gespeichert und kopiert wird, ist der Wert selbst

Verwenden Sie „typeof“, um den Datentyp zu erkennen

Die Basistypdaten sind ein Werttyp

2. Referenztyp

占用空间不固定,保存在堆中(当我们在程序中创建一个对象时,这个对象将被保存到运行时数据区中,以便反复利用(因为对象的创建成本通常较大),这个运行时数据区就是堆内存。堆内存中的对象不会随方法的结束而销毁,即使方法结束后,这个对象还可能被另一个引用变量所引用(方法的参数传递时很常见),则这个对象依然不会被销毁,只有当一个对象没有任何引用变量引用它时,系统的垃圾回收机制才会在核实的时候回收它。)

保存与复制的是指向对象的一个指针

使用instanceof检测数据类型

使用new()方法构造出的对象是引用型

计算区别:

题目1:

var a = 100;
    var b = a;
      a = 200;
    console.log (b);

题目2:

var a = {age : 20};
    var b = a;
    b.age = 21;
    console.log (a.age);

题目1的答案是 100,题目2的答案是21,

题目1是简单的值类型,在从一个变量向另一个变量赋值基本类型时,会在该变量上创建一个新值,然后再把该值复制到为新变量分配的位置上。

此时,a中保存的值为 100 ,当使用 a 来初始化 b 时,b 中保存的值也为100,但b中的100与a中的是完全独立的,该值只是a中的值的一个副本,此后,这两个变量可以参加任何操作而相互不受影响。也就是说基本类型在赋值操作后,两个变量是相互不受影响的。

题目2是引用类型,当从一个变量向另一个变量赋值引用类型的值时,同样也会将存储在变量中的对象的值复制一份放到为新变量分配的空间中。

这时保存在变量中的是对象在堆内存中的地址,所以,与简单赋值不同,这个值的副本实际上是一个指针,而这个指针指向存储在堆内存的一个对象。那么赋值操作后,
两个变量都保存了同一个对象地址,则这两个变量指向了同一个对象。因此,改变其中任何一个变量,都会相互影响。

因此,引用类型的赋值其实是对象保存在栈区地址指针的赋值,因此两个变量指向同一个对象,任何的操作都会相互影响。

相关文章推荐:

js的数据类型及JS基本数据类型具体有哪几种

JS数据类型怎样转换

JS的数据类型+引用类型深浅拷贝与内存分配问题


Das obige ist der detaillierte Inhalt vonWas sind die js-Datentypen? Zusammenfassung der Datentypen in js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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