Maison > interface Web > Questions et réponses frontales > Quelle est la différence entre un pool constant et un tas en javascript

Quelle est la différence entre un pool constant et un tas en javascript

青灯夜游
Libérer: 2022-02-08 14:54:59
original
2525 Les gens l'ont consulté

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).

Quelle est la différence entre un pool constant et un tas en javascript

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

Quelle est la différence entre un pool constant et un tas en javascript

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

Quelle est la différence entre un pool constant et un tas en javascript

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;
Copier après la connexion

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

Quelle est la différence entre un pool constant et un tas en javascript

Copie de types de données complexes :

var person={name:'李华'}; //创建一个对象
var per=person ; //进行对象的复制
Copier après la connexion

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 :

Quelle est la différence entre un pool constant et un tas en javascript

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;
    
}
Copier après la connexion

[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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal