Maison >interface Web >Questions et réponses frontales >Comment déterminer si deux objets sont égaux dans es6

Comment déterminer si deux objets sont égaux dans es6

青灯夜游
青灯夜游original
2022-04-19 15:34:513905parcourir

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.

Comment déterminer si deux objets sont égaux dans es6

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

Comment déterminer si deux objets sont égaux dans es6

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!

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