Dieses Mal zeige ich Ihnen, wie Sie Originalwerte und referenzierte Werte in JS speichern. Was sind die Vorsichtsmaßnahmen zum Speichern von Originalwerten und referenzierten Werten? in JS. Das Folgende ist ein praktischer Fall, schauen wir uns das gemeinsam an.
In ECMAscript können Variablen zwei Arten von Werten speichern, nämlich Grundwerte und Referenzwerte
Der ursprüngliche Wert bezieht sich auf die ursprünglichen Daten Typ, auch Basisdatentyp genannt, umfasst: Number, Stirng, Boolean, Null, Underfined
- Referenzwert bezieht sich auf den Wert des zusammengesetzten Datentyps, einschließlich: Objekt, Funktion, Array, Datum, RegExp
Abhängig von den verschiedenen Datentypen werden einige Variablen im Stapel und andere im 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
Nach dem Login kopieren
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 Zeiger zeigen 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:
Detaillierte Erläuterung der Formatierungsmethode des Vue-Filters
In Angular integriertes UI-Framework eines Drittanbieters, ausführliche Erläuterung der Kontrollnutzung
Das obige ist der detaillierte Inhalt vonSo speichern Sie Originalwerte und Referenzwerte in JS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!