Dieses Mal werde ich Ihnen die Probleme des Datentyps+Referenztyps mit tiefem und flachem Kopieren und der Speicherzuweisung sowie die Vorsichtsmaßnahmen für die Verwendung von JS-Datentypen+Referenztyp mit tiefem und flachem Kopieren vorstellen und Speicherzuordnung Was sind das? Hier sind tatsächliche Fälle.
js tiefes und flaches Kopierproblem
Unter „Flache Kopie“ versteht man im Allgemeinen die grundlegende Art der Kopie
Deep Copy bezieht sich im Allgemeinen auf die Kopie des Referenztyps, und der Wert des Referenztyps wird ebenfalls kopiert
Beispiel
Der SessionSpeicher von h5 kann nur String speichern. Wenn Sie also JSON speichern möchten, müssen Sie JSON.Stringify() verwenden, um JSON in einen String umzuwandeln Verwenden Sie JSON.parse(), um es in JSON-Daten umzuwandeln
Nachteile: JSON.parse und JSON.stringify unterstützen nur IE9+ und höher
Um dieses Problem zu lösen, können Sie die Tiefenverhältnis-Kopiermethode
verwenden Probleme bei der Speicherzuweisung (Heap und Stack) in js
Grundtypen in js werden im Allgemeinen auf dem Stapel gespeichert. Diese Typen belegen jeweils eine feste Speichergröße und ihre Werte werden im Stapelspeicher gespeichert, auf den wir über den Wert zugreifen.
Referenztypen sind Daten variabler Größe, aber ihre Adressgröße ist fest, sodass die Adresse auf dem Stapel und der Wert auf dem Heap gespeichert wird
1. Stapelspeicher: Speichert Grundtypen. Heap-Speicher: Speichert Referenztypen (speichern Sie einen Basistypwert im Stapelspeicher, um die Adresse des Objekts im Heap-Speicher zu speichern, der zum Referenzieren dieses Objekts verwendet wird.)
2. Der Basistyp wird zerstört, wenn die aktuelle Ausführungsumgebung endet, aber der Referenztyp wird nicht zerstört, wenn die Ausführungsumgebung endet. Dieses Objekt wird vom Garbage-Collection-Mechanismus nur dann recycelt, wenn alle Variablen auf diese verweisen es existiert nicht.
js-Basisdatentypen und Referenztypen
Zu den grundlegenden Datentypen gehören Zahlen, boolesche Zeichenfolgen, undefinierte Nullsymbole
Referenzdatentyp: Array-Obj-Funktion
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:
Das obige ist der detaillierte Inhalt vonJS-Datentyp + Referenztyp Probleme mit tiefer und flacher Kopie und Speicherzuordnung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!