Heim >Web-Frontend >js-Tutorial >Was sind die Speichermethoden für JS-Originalwerte und Referenzwerte?

Was sind die Speichermethoden für JS-Originalwerte und Referenzwerte?

php中世界最好的语言
php中世界最好的语言Original
2018-05-03 15:06:081635Durchsuche

Dieses Mal werde ich Ihnen die Speichermethoden des JS-Originalwerts und des Referenzwerts vorstellen. Was sind die Vorsichtsmaßnahmen bei der Verwendung der JS-Originalwert- und Referenzwertspeichermethode? Tatsächlicher Kampf Werfen wir einen Blick auf den Fall.

  • Der Originalwert bezieht sich auf den Wert, der den ursprünglichen Datentyp darstellt, auch Basisdatentyp genannt, einschließlich: Zahl, Stirng, Boolean, Null, Unterfiniert

  • Referenzwerte beziehen sich auf Werte zusammengesetzter Datentypen, einschließlich: Objekt, Funktion, Array, Datum, RegExp

Abhängig von den Daten Typ: Einige Variablen werden auf dem Stapel und andere auf dem Heap gespeichert. Die spezifischen Unterschiede sind wie folgt:

Originalvariablen und ihre Werte werden im Stapel gespeichert. Bei der Übergabe einer Originalvariablen an eine andere Originalvariable wird der Inhalt eines Stapelraums in einen anderen Stapelraum kopiert Dies Die beiden ursprünglichen Variablen haben keinen Einfluss aufeinander.

Der Referenzwert speichert den Namen der Referenzvariablen auf dem Stapel, speichert jedoch ihr tatsächliches Objekt im Heap, und es gibt einen Zeiger, der durch den Variablennamen auf das tatsächlich gespeicherte Objekt zeigt Wenn im Heap das Referenzobjekt an eine andere Variable übergeben wird, wird tatsächlich der Zeiger auf das tatsächliche Objekt kopiert. Wenn der Wert einer Variablen durch eine Methode geändert wird, Wenn auf die andere Variable zugegriffen wird, ändert sich auch ihr Wert entsprechend. Erfolgt dies jedoch nicht über eine Methode, sondern durch Neuzuweisung, was dem erneuten Öffnen eines Raums entspricht und sich der ursprüngliche Zeiger des Werts ändert, ändert sich der andere Wert nicht mit seinem ändern.

Sehen Sie sich das Beispiel an:

var a="hello";
var b=a;
a="world";
alert(a);//world
alert(b);//hello
var arr=[1,3];
arr1=arr;
arr.push(5);
alert(arr)//1,3,5
alert(arr1);//1,3,5
arr=[7,8];
alert(arr);//7,8
alert(arr1);//1,3,5

Verwenden Sie ein Diagramm, um das Ergebnis wie folgt darzustellen:

Die Werte der Originalvariablen beeinflussen sich nicht gegenseitig. Die Referenz Die Variablen arr und arr1 zeigen auf dasselbe Objekt. Wenn also der Wert von arr über eine Methode geändert wird (die Daten im Heap-Raum ändern sich), wird beim Zugriff auf die Daten von arr1 auf das geänderte Objekt zugegriffen

durch Nicht-Methoden Wenn der Wert einer Referenzvariablen geändert wird, wird ein Heap-Raum für die Referenzvariable neu erstellt und der Zeiger ändert sich ebenfalls:

Zusammenfassung:

Number, Stirng, Boolean, Null, Underfined und andere grundlegende Datentypen, deren Werte direkt gespeichert werden der Stapel;

Objekt, Funktion, Array, Datum, RegExp usw. Referenztypen, ihre Referenzvariablen werden im Stapel gespeichert und verweisen über Zeiger auf die tatsächlich im Heap gespeicherten Objekte

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Ausführliche Erklärung der Schritte zum Aufrufen der Baidu-Karte in Vue

Vue-Dokument macht leicht Fehler organisiert

Das obige ist der detaillierte Inhalt vonWas sind die Speichermethoden für JS-Originalwerte und Referenzwerte?. 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