Cette fois, je vais vous présenter les problèmes du type de données+type de référence, copie profonde et superficielle et allocation de mémoire, et les précautions d'utilisation des types de données JS+type de référence copie profonde et superficielle et allocation de mémoireQu'est-ce que c'est ? Voici des cas réels.
Problème de copie profonde et superficielle js
La copie superficielle fait généralement référence au type de copie de base
La copie profonde fait généralement référence à la copie du type référence, et la valeur du type référence est également copiée
Exemple
La sessionStorage de h5 ne peut stocker que des string, donc lorsque vous souhaitez stocker json, vous devez utiliser JSON.stringify() pour convertir json en chaîne. utilisez JSON.parse() pour le convertir en données json
Inconvénients : JSON.parse et JSON.stringify ne prennent en charge que IE9+ et supérieur
Pour résoudre ce problème, vous pouvez utiliser la méthode de copie du rapport de profondeur
Problèmes d'allocation de mémoire (tas et pile) en js
Les types de base en js sont généralement stockés sur la pile. Ces types occupent chacun une taille fixe d'espace dans la mémoire, et leurs valeurs sont stockées dans l'espace de pile, auquel nous accédons par valeur.
Les types de référence sont des données de taille variable, mais leur taille d'adresse est fixe, donc l'adresse est stockée sur la pile et la valeur est stockée sur le tas
1. Mémoire de pile : stocke les types de base. Mémoire tas : stocke les types de référence (stocke une valeur de type de base dans la mémoire de pile pour enregistrer l'adresse de l'objet dans la mémoire tas, qui est utilisée pour référencer cet objet.)
2. Le type de base est détruit à la fin de l'environnement d'exécution actuel, mais le type de référence ne sera pas détruit à la fin de l'environnement d'exécution. Cet objet sera recyclé par le mécanisme de récupération de place uniquement lorsque toutes les variables faisant référence. ça n'existe pas.
Types de données de base js et types de référence
Les types de données de base incluent un nombre, une chaîne booléenne, un symbole nul non défini
Type de données de référence : fonction array obj
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de PHP !
Lecture recommandée :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!