Les opérateurs d'égalité parmi les opérateurs de comparaison sont présentés en détail :
Égal(==)
Les opérateurs de comparaison convertissent deux types d'opérandes différents, puis effectuent une comparaison stricte. Lorsque les deux opérandes sont des objets, JavaScript compare leurs références internes et sont égales si et seulement si leurs références pointent vers le même objet (zone) en mémoire, c'est-à-dire que leurs adresses de référence dans la mémoire de pile sont les mêmes.
Tout ce qui est mentionné ci-dessus est correct, car dans [1] == [1], les deux tableaux sont des objets différents, donc ils ne sont pas égaux.
Lorsque la valeur comparée est une valeur de référence, elle comparera si les deux valeurs sont le même objet en mémoire [1] et [1] ici sont différentes, donc c'est faux
Les opérateurs d'égalité parmi les opérateurs de comparaison sont présentés en détail :
Tout ce qui est mentionné ci-dessus est correct, car dans [1] == [1], les deux tableaux sont des objets différents, donc ils ne sont pas égaux.
JavaScript
中,数组是Object
。这一语句通过字面量创建了两个
Array
, ce sont des objets différents, donc pas égaux.2 Les objets tableau ne sont pas le même objet.
Lorsque la valeur comparée est une valeur de référence, elle comparera si les deux valeurs sont le même objet en mémoire [1] et [1] ici sont différentes, donc c'est faux
.Ecma-262.pdf
7.2.13 Comparaison abstraite de l'égalité
已经明确说明了,这里的
[1] = [1]
实际是[1] === [1]
正好试用第一条。La comparaison x == y, où x et y sont des valeurs, produit vrai ou faux. Une telle comparaison est effectuée comme suit :
Si Type(x) est le même que Type(y), alors a. Renvoie le résultat de la comparaison stricte d'égalité x === y.
Si x est nul et y n'est pas défini, renvoie vrai.
Si x n'est pas défini et y est nul, renvoie vrai.
Si Type(x) est Number et Type(y) est String, renvoie le résultat de la comparaison x == ToNumber(y).
Si Type(x) est String et Type(y) est Number, renvoie le résultat de la comparaison ToNumber(x) == y.
Si Type(x) est booléen, renvoie le résultat de la comparaison ToNumber(x) == y.
Si Type(y) est booléen, renvoie le résultat de la comparaison x == ToNumber(y).
Si Type(x) est une chaîne, un nombre ou un symbole et que Type(y) est un objet, renvoie le résultat de la comparaison x ==
ToPrimitive(y).
Si Type(x) est Object et Type(y) est soit String, Number ou Symbol, renvoie le résultat de la comparaison ToPrimitive(x)
== y.
Retour faux.
Le type d'objet comparera l'adresse mémoire. Les adresses sont différentes, donc c'est faux
.