Maison > interface Web > js tutoriel > Égalité des objets JavaScript : quelle est la différence entre `==` et `===` ?

Égalité des objets JavaScript : quelle est la différence entre `==` et `===` ?

Patricia Arquette
Libérer: 2024-12-08 07:34:11
original
429 Les gens l'ont consulté

JavaScript Object Equality: What's the Difference Between `==` and `===`?

Quelle est la différence entre l'égalité des objets réguliers et stricts ?

En JavaScript, comparer des objets avec l'égalité régulière (==) ou stricte (= ==) les opérateurs d'égalité peuvent ne pas donner les résultats attendus. Contrairement aux types de données primitifs, les objets sont référencés par leur adresse mémoire. Par conséquent, une comparaison basée uniquement sur leurs valeurs n'est pas suffisante.

Considérez le code suivant :

var a = {};
var b = {};

console.log(a == b); // false
console.log(a === b); // false
Copier après la connexion

Bien que a et b soient tous deux des objets vides, leurs références pointent vers des adresses mémoire différentes. Par conséquent, les évaluations d'égalité régulières et strictes renvoient faux.

Pourquoi est-ce important ?

Comprendre cette nuance est crucial pour garantir des comparaisons d'objets précises. Les objets ne doivent être considérés comme égaux que s’ils font référence exactement à la même adresse mémoire. L'attribution d'un objet à une nouvelle variable crée une nouvelle référence, même si le contenu est identique.

Par exemple, disons que nous avons trois objets : a, b et c.

a = {}
b = a
c = {}
Copier après la connexion

Dans ce cas, a == a, a == b et a != c. En effet, a et b font référence à la même adresse mémoire, tandis que c a sa propre référence unique.

Conclusion

Lors de la comparaison d'objets, il est essentiel de se rappeler que l'égalité des objets est basé sur des références de mémoire, pas sur leurs valeurs. Les opérateurs d'égalité régulière et stricte se comportent de la même manière pour les objets, et ils ne renvoient vrai que si les objets comparés font référence à la même adresse mémoire.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal