La différence entre le pool constant et le tas en JavaScript : 1. Le pool constant est utilisé pour stocker les constantes et les types de données de base, tandis que le tas est utilisé pour stocker les types de données complexes 2. L'efficacité du système du pool constant est plus élevée, tandis que le tas doit allouer de l'espace et des adresses, et que l'adresse doit être stockée dans la pile, donc l'efficacité est inférieure à celle de la pile (pool constant).
L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3.
La mémoire de JavaScript est divisée en mémoire de pile, mémoire de tas et pool constant. Le pool constant est généralement résumé dans la pile
Mémoire de pile : utilisée pour stocker les types de données de base
Pool constant : utilisé. pour stocker des constantes Type de données de base (généralement classé dans la mémoire de pile)
Mémoire tas : utilisée pour stocker des types de données complexes
Lorsqu'une variable stocke un type de données de base, la valeur de la variable est stockée dans la mémoire de pile
Lorsque la variable stocke un type de données complexe, la valeur de la variable est une adresse mémoire allouée par js, qui pointe vers le type de données complexe dans la mémoire tas
Mémoire de pile (pool constant) en raison de ses caractéristiques, donc l'efficacité du système est plus élevé. La mémoire tas doit allouer de l'espace et des adresses, et stocker les adresses sur la pile, de sorte que l'efficacité est inférieure à celle de la pile.
Mémoire de pile
Étant donné que les types de nombres de base occupent peu d'espace, sont de taille fixe et sont fréquemment utilisés, ils sont stockés dans la mémoire de pile
Prenons l'un des types de données de base, Nombre, comme exemple :
Lorsque nous déclarons une variable de type de données de base, le nom de la variable et la valeur spécifique seront stockés dans la mémoire de la pile
Lorsque nous utilisons console.log(a), nous produisons la valeur correspondante
Mémoire du tas
Étant donné que les types de données complexes occupent beaucoup d'espace et ne sont pas de taille fixe, leur stockage sur la pile affecte les performances, ils sont donc stockés dans la mémoire tas
Lorsque nous déclarons une variable pour stocker un complexe type de données, il sera stocké dans la mémoire de la pile. Générez un nom de variable et une valeur spécifique, et cette valeur spécifique est une adresse de référence mémoire allouée par JS. Cette adresse pointe vers le type de données complexe que nous avons créé et stocké dans la mémoire tas. Lorsque nous appelons la variable, l'analyseur référencera l'objet correspondant en fonction de l'adresse de référence correspondant à la variable.
Copie de variables
Copie de types de données de base :
var num1=5; var num2=num1;
Dans le code ci-dessus, num1 et num2 sont en fait deux variables différentes, et leurs opérations ne sont pas liées les unes aux autres. ce type de copie de variable génère en fait une copie d'une variable (c'est-à-dire num2=1)
Comme le montre la figure
Copie de types de données complexes :
var person={name:'李华'}; //创建一个对象 var per=person ; //进行对象的复制
La différence avec la copie de variables de type de données de base est que lorsque nous copions un objet de type de données complexe, l'essentiel est de copier l'adresse de référence mémoire de la variable. Par conséquent, les adresses de personne et par référence sont les mêmes. Elles font toutes deux référence au même objet. , ils opèrent dans la mémoire. Le même objet
est montré dans l'image :
Le passage des paramètres de fonction est en fait une sorte de copie de variable
var x=1; function fun (x){ var y=x+1; }
[Recommandations associées : apprentissage javascript. tutoriel]
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!