Maison >interface Web >Questions et réponses frontales >Comment déterminer si deux objets sont égaux dans es6
Dans es6, la méthode is() de l'objet Object peut être utilisée pour déterminer si deux objets sont égaux. Cette méthode détecte si les valeurs de deux variables sont la même valeur et détermine si les adresses de référence des deux objets. sont cohérents. La syntaxe "Object. is(Object 1, Object 2)" ; cette méthode renverra une valeur booléenne. Si elle renvoie vrai, cela signifie que les deux objets sont égaux.
L'environnement d'exploitation de ce tutoriel : système Windows 7, ECMAScript version 6, ordinateur Dell G3.
Deux objets de type Objet, même s'ils ont les mêmes propriétés et valeurs, ne sont pas considérés comme égaux lorsqu'ils sont comparés à l'aide de == ou ===. En effet, ils sont comparés par référence (emplacement en mémoire), contrairement aux types primitifs qui sont comparés par valeur.
var obj1 = { name: "xiaoming", sex : "male" } var obj2 = { name: "xiaoming", sex : "male" } console.log(obj1 === obj2); // false
Mais ES6 fournit une méthode pour déterminer si deux objets sont égaux. Cette méthode détermine si les adresses de référence des deux objets sont cohérentes. La méthode
Object.is(a,b)
Object.is() détermine si les deux valeurs sont les mêmes. même valeur. Deux valeurs sont égales si les conditions suivantes sont remplies :
sont toutes deux indéfinies
sont toutes deux nulles
sont toutes deux vraies ou fausses
sont toutes deux des chaînes de même longueur et identiques les caractères sont dans le même ordre Faites en sorte que
soient tous le même objet (ce qui signifie que chaque objet a la même référence)
sont tous des nombres et
sont tous +0
sont tous -0
sont tous des NaN
ou à la fois non nuls et non NaN et de même valeur
Valeur de retour : un type booléen pour indiquer si les deux paramètres ont la même valeur.
Exemple 1 :
let obj1= { a: 1 } let obj2 = { a: 1 } console.log(Object.is(obj1, obj2)) // false let obj3 = obj1 console.log(Object.is(obj1, obj3)) // true console.log(Object.is(obj2, obj3)) // fals
Exemple 2 :
Object.is('foo', 'foo') //true Object.is(window, window) //true Object.is([], []) //false Object.is(null, null) //true
Connaissances étendues : La méthode
Object.is() est différente de l'opération == (en-US). L'opérateur == convertit les variables des deux côtés (si elles ne sont pas du même type) avant de juger de l'égalité (le résultat de ce comportement jugera "" == false comme vrai), tandis que Object.is ne convertit pas les variables sur valeur des deux côtés. La méthode
Object.is() et l'opération === (en-US) sont également différentes. L'opérateur === (inclut également l'opérateur ==) traite les nombres -0 et +0 comme égaux, et Number.NaN et NaN comme inégaux.
[Recommandations associées : tutoriel vidéo javascript, Web Front end】
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!