Maison  >  Article  >  développement back-end  >  Valeurs primitives et entre guillemets ECMAScript - JavaScript ING

Valeurs primitives et entre guillemets ECMAScript - JavaScript ING

不言
不言original
2018-03-30 12:44:351878parcourir

Cet article partage principalement avec vous quelques connaissances sur les valeurs originales et les valeurs de référence ECMAScript. Les amis dans le besoin peuvent s'y référer

1 Les concepts de valeurs originales et de valeurs de référence

<.> Dans ECMAScript, les variables peuvent avoir deux types de valeurs, à savoir
valeur originale et valeur de référence.
1.1 Valeur d'origine

(1) La valeur d'origine fait référence à la valeur du

type d'origine, également appelé type de base, tel que Nombre, Stirng , Booléen, Null, Sous-fin.

(2) Segments de données simples stockés dans la

pile , c'est-à-dire que leurs valeurs sont stockées directement à l'emplacement accessible par la variable .

(3) Remarque

Dans de nombreux langages, les chaînes sont traitées comme des types de référence plutôt que comme des types primitifs car la longueur de la chaîne est variable. ECMAScript brise cette tradition.

1.2 Valeur de référence

(1) La valeur de référence fait référence à la valeur du

type de référence , tel que Objet, Fonction, Tableau, Date, RegExp.

(2) Objets stockés dans le

tas , c'est-à-dire que la valeur stockée dans la variable est un pointeur (point), pointant vers le stockage L'emplacement mémoire de l'objet.

2. Stack et Heap

2.1 Les valeurs primitives sont stockées dans la pile

Lors de l'attribution d'une valeur à une variable, l'interpréteur ECMAScript doit déterminer si la valeur est un type primitif ou un type référence. Pour ce faire, l'interpréteur tente de déterminer si la valeur est l'un des types primitifs d'ECMAScript : Undefined, Null, Boolean, Number et String. Puisque ces types primitifs

occupent un espace fixe , ils peuvent être stockés dans une zone mémoire plus petite - la pile . Ce stockage permet de rechercher facilement et rapidement la valeur de la variable. 2.2 Les valeurs de référence sont stockées dans le tas

Si une valeur est de

type de référence

, alors son espace de stockage sera alloué à partir du

heap. Étant donné que la taille de la valeur de référence changera , elle ne peut pas être placée sur la pile, sinon cela réduira la vitesse de recherche des variables. Au lieu de cela, la valeur placée dans l'espace de pile de la variable est l'adresse où l'objet est stocké dans le tas. La taille de l'adresse est fixe, donc son stockage sur la pile n'a aucun impact négatif sur les performances variables. 2.3 Illustration

Valeurs primitives et entre guillemets ECMAScript - JavaScript ING3. La différence entre la valeur d'origine et la valeur de référence

3.1 Méthode d'attribution

3.2 Si la valeur est variable

3.3 Différentes méthodes de comparaison

4. Méthode d'attribution et si la valeur est variable

4.1 La valeur d'origine est basée sur

🎜> Attribuez une valeur en copiant

, et la valeur est immuable . 4.2 La valeur de référence est attribuée de la manière

copie

de la référence, et la valeur est variable. 4.3 Exemple

Valeurs primitives et entre guillemets ECMAScript - JavaScript ING4.4 Description

(1) Affectation de valeur originale → En fait, la valeur est

Copiez

et attribuez-le à une nouvelle variable. Cette valeur est la copie. Elle est indépendante de la valeur d'origine. La modification d'une valeur n'affectera pas les autres valeurs. (2) Affectation de valeur de référence → Lorsqu'un type de référence, tel qu'un objet, utilise = pour l'affecter à une autre variable, c'est en fait la

référence d'adresse de son objet

qui est attribuée vers la nouvelle Variables, les deux variables pointent vers la même référence d'adresse, et elles ont la même adresse. Ainsi, si vous modifiez l'une des variables (l'objet vers lequel pointe la référence de l'adresse), l'autre variable (la référence de l'adresse pointe vers le même objet) changera également.

Valeurs primitives et entre guillemets ECMAScript - JavaScript ING4.5 Extension

Valeurs primitives et entre guillemets ECMAScript - JavaScript ING5. 🎜>

5.1 La comparaison des valeurs d'origine est la comparaison des

valeurs

5.2 La comparaison des valeurs de référence est la comparaison des références

5.3 Exemple

Valeurs primitives et entre guillemets ECMAScript - JavaScript ING5.4 Description

(1) Les valeurs d'origine a et b ont des données différentes types, mais les valeurs peuvent également être comparées. (Avant la comparaison des valeurs, la

conversion implicite du type de données

est automatiquement effectuée)

== → Comparez uniquement les valeurs
  • === → Compare non seulement les valeurs, mais compare également les types de données
  • (2) Les valeurs de référence obj1 et obj2 font respectivement référence à deux
  • différents stockés dans l'objet mémoire tas
, donc les valeurs (références d'adresse) de obj1 et obj2 sont différentes.

Lire la suite

1. La notion de valeur originale et de valeur de référence

Dans ECMAScript, les variables peuvent avoir deux types de valeurs, à savoir valeur originale et valeur de référence.

1.1 Valeur primitive


(1) La valeur primitive fait référence à la valeur du type original, également appelé type de base , comme Number, Stirng, Boolean, Null, Underfined.

(2) Segments de données simples stockés dans la pile , c'est-à-dire que leurs valeurs sont stockées directement à l'emplacement accessible par la variable .

(3) Remarque

Dans de nombreux langages, les chaînes sont traitées comme des types de référence plutôt que comme des types primitifs car la longueur des chaînes est variable. ECMAScript brise cette tradition.

1.2 Valeur de référence

(1) La valeur de référence fait référence à la valeur du type de référence , tel que Objet, Fonction, Tableau, Date, RegExp.

(2) Objets stockés dans le tas , c'est-à-dire que la valeur stockée dans la variable est un pointeur (point), pointant vers le stockage L'emplacement mémoire de l'objet.

2. Pile et tas

2.1 Les valeurs primitives sont stockées sur la pile

Lors de l'attribution d'une valeur à une variable, l'interpréteur ECMAScript doit déterminer si la valeur est un type primitif ou un type référence. Pour ce faire, l'interpréteur tente de déterminer si la valeur est l'un des types primitifs d'ECMAScript : Undefined, Null, Boolean, Number et String. Puisque ces types primitifs occupent un espace fixe , ils peuvent être stockés dans une zone mémoire plus petite - la pile . Ce stockage permet de rechercher facilement et rapidement la valeur de la variable. 2.2 Les valeurs de référence sont stockées dans le tas

Si une valeur est de

type de référence

, alors son espace de stockage sera alloué à partir du heap. Étant donné que la taille de la valeur de référence changera , elle ne peut pas être placée sur la pile, sinon cela réduira la vitesse de recherche des variables. Au lieu de cela, la valeur placée dans l'espace de pile de la variable est l'adresse où l'objet est stocké dans le tas. La taille de l'adresse est fixe, donc son stockage sur la pile n'a aucun impact négatif sur les performances variables. 2.3 Illustration

Valeurs primitives et entre guillemets ECMAScript - JavaScript ING3. La différence entre la valeur d'origine et la valeur de référence

3.1 Méthode d'attribution

3.2 Si la valeur est variable

3.3 Différentes méthodes de comparaison

4. Méthode d'attribution et si la valeur est variable

4.1 La valeur d'origine est basée sur

🎜> Attribuez une valeur en copiant , et la valeur est immuable .

4.2 La valeur de référence est attribuée de la manière

copie de la référence, et la valeur est variable.

4.3 Exemple

Valeurs primitives et entre guillemets ECMAScript - JavaScript ING

4.4 Description

(1) Affectation de valeur originale → En fait, la valeur est

Copiez et attribuez-le à une nouvelle variable. Cette valeur est la copie. Elle est indépendante de la valeur d'origine. La modification d'une valeur n'affectera pas les autres valeurs.

(2) Affectation de valeur de référence → Lorsqu'un type de référence, tel qu'un objet, utilise = pour l'affecter à une autre variable, c'est en fait la

référence d'adresse de son objet qui est attribuée vers la nouvelle Variables, les deux variables pointent vers la même référence d'adresse, et elles ont la même adresse. Ainsi, si vous modifiez l'une des variables (l'objet vers lequel pointe la référence de l'adresse), l'autre variable (la référence de l'adresse pointe vers le même objet) changera également.

Valeurs primitives et entre guillemets ECMAScript - JavaScript ING

4.5 Extension

Valeurs primitives et entre guillemets ECMAScript - JavaScript ING

5. 🎜>

5.1 La comparaison des valeurs d'origine est la comparaison des

valeurs

5.2 La comparaison des valeurs de référence est la comparaison des

références

5.3 Exemple

Valeurs primitives et entre guillemets ECMAScript - JavaScript ING5.4 Description

(1) Les valeurs d'origine a et b ont des données différentes types, mais les valeurs peuvent également être comparées. (Avant la comparaison des valeurs, la

conversion implicite du type de données

est automatiquement effectuée)

    == → Comparez uniquement les valeurs
  • === → Compare non seulement les valeurs, mais compare également les types de données
  • (2) Les valeurs de référence obj1 et obj2 font respectivement référence à deux
différents stockés dans l'objet mémoire tas

, donc les valeurs (références d'adresse) de obj1 et obj2 sont différentes. Recommandations associées :

Explication détaillée de l'affectation de déstructuration des variables ECMAScript6

La différence entre JavaScript et ECMAScript

Explication détaillée d'exemples d'objets Class pour démarrer avec ECMAScript6


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!

Déclaration:
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