Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Erläuterung der JavaScript-Referenztypen und grundlegender JavaScript-Kenntnisse

WBOY
Freigeben: 2016-05-16 15:21:29
Original
1147 Leute haben es durchsucht

In JavaScript gibt es zwei Arten von Daten: Basistypen und Referenztypen.

Basistypen sind einfach einfache Datensegmente.

Ein Referenztyp ist ein Objekt, das aus mehreren Werten besteht.

Wenn wir eine Zuweisungsoperation durchführen, analysiert der Parser zunächst, ob es sich bei den Daten um einen Werttyp oder einen Referenztyp handelt.

Zwei Zugriffsmethoden:

Grundlegende Typwerte: Zugriff nach Wert, die Operation ist ihr tatsächlich gespeicherter Wert;

Referenztypwert: Beim Abfragen müssen wir zuerst die Speicheradresse aus dem Stapel lesen und dann den Hinweisen folgen, um den im Heapspeicher gespeicherten Wert zu finden

Im Folgenden werden diese beiden Datentypen von JavaScript vorgestellt.

1. Grundlegende Datentypen:

Es gibt sechs grundlegende Datentypen in JavaScript: Zeichenfolge, Zahl, Boolescher Wert, Symbol (neu in ES6), Null und undefiniert.

Diese fünf grundlegenden Datentypen können direkt mit den in Variablen gespeicherten tatsächlichen Werten arbeiten.

Das Codebeispiel lautet wie folgt:

var a=10;
var b=a;
b=20;
console.log(a);
Nach dem Login kopieren
Der obige Code ist eine einfache Zuweisungsoperation. Nachfolgend geben wir eine kurze Einführung.

(1) Zunächst einmal sind Zahlen der grundlegende Datentyp.

(2) .var b = a, diese Zuweisungsoperation kopiert tatsächlich die Daten von a und weist sie dann der Variablen b zu.
(3).a und b sind völlig unabhängig.
(4).b = 20, das Ändern des Werts der Variablen b hat keinen Einfluss auf den Wert der Variablen a.

Das Symbol sieht wie folgt aus:


Stapelspeicher


2. Referenztypdaten:

In JavaScript werden Referenztypdaten im Heap-Speicher gespeichert, Sie können jedoch nicht direkt auf den Speicherort im Heap-Speicherraum zugreifen und den Heap-Speicherraum bedienen.

Sie können nur die Referenzadresse des Objekts im Stapelspeicher bearbeiten. Daher sind die im Stapelspeicher gespeicherten Referenztypdaten tatsächlich die Referenzadresse des Objekts im Heapspeicher. Über diese Referenzadresse können Sie das im Heapspeicher gespeicherte Objekt schnell finden.

Codebeispiel:

var obj1=new Object();
var obj2=obj1;
obj2.name="脚本之家";
console.log(obj1.name);
Nach dem Login kopieren
Lassen Sie uns den obigen Code aufschlüsseln.

(1).var obj1=new Object(), hiermit wird ein Objekt erstellt, bei dem es sich um Referenztypdaten handelt. Die Variable obj1 speichert die Adresse des Objekts im Heapspeicher.

(2) .var obj2=obj1. Diese Zuweisungsoperation kopiert tatsächlich die Speicheradresse des Objekts im Heapspeicher in die Variable obj2. Das heißt, die beiden Variablen speichern die Speicheradresse, die auf das tatsächliche Objekt zeigt, und zeigen auf dasselbe Objekt . .
(3).obj2.name="Script Home", fügen Sie dem Objekt ein Attribut hinzu.
(4).console.log(obj1.name), geben Sie „Script Home“ aus, da die beiden Variablen auf dasselbe Objekt
verweisen

Das Symbol sieht wie folgt aus:



String ist ein spezieller Basisdatentyp

In vielen Sprachen wird String in Form von Objekten dargestellt, in ECMAScript wird dieser Tradition jedoch nicht gefolgt. String wird als grundlegender Datentyp verwendet, sondern ist ein relativ spezieller Basistyp.


Es scheint, dass String als Referenztyp verwendet werden sollte, aber tatsächlich ist dies nicht der Fall, da es sich nicht um ein Objekt handelt. Dann scheint es, dass es sich um einen Basisdatentyp handeln sollte, der durch Wertübergabe bedient werden sollte.


Sehen Sie sich das Beispiel unten an:


var stra = "这是一个字符串";
var strb = stra;
stra = "这是另外一个字符串";
console.log(strb); // 这是一个字符串 
Nach dem Login kopieren
Im obigen Beispiel sehen wir, dass stra anscheinend eine Kopie durch Wertübertragung nach strb kopiert. Wenn sich stra ändert, ändert sich strb nicht. Es scheint, dass wir bereits den Schluss ziehen können, dass String ein grundlegender Datentyp ist.


Da String jedoch eine beliebige Länge haben kann und als Wert übergeben wird, ist die Anzeigeeffizienz beim einzelnen Kopieren von Bytes immer noch sehr gering. Es scheint, dass String auch als Referenztyp verwendet werden kann.


Sehen Sie sich das Beispiel unten an:


var a = "myobject";
a.name = "myname";
console.log(a.name); // undefined 
Nach dem Login kopieren
Zeigt, dass String nicht als Objekt behandelt werden kann. Tatsächlich kann String in JavaScript nicht geändert werden, und JavaScript bietet keine Methode oder Syntax zum Ändern von Strings.


var a = "myobject";
a = a.substring(3,5)
console.log(a); // bj 
Nach dem Login kopieren
Denken Sie daran, dass dadurch der String „myobject“ nicht geändert wird, sondern nur a auf einen anderen String „bj“ verweist und „myobject“ recycelt wird.


Man kann also sagen, dass String tatsächlich nicht den beiden oben genannten Datentypklassifizierungen entspricht. Es handelt sich um einen speziellen Typ mit zwei Attributen dazwischen.


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