Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Object.is()
Baseline Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 2015.
La méthodeObject.is() permet de déterminer si deux valeurs sontles mêmes.
Dans cet article
Syntaxe
Object.is(value1, value2);Paramètres
Valeur de retour
Un booléen indiquant si les arguments ont la même valeur.
Description
Object.is() permet de déterminer si deux valeurs sontidentiques. Deux valeurs sont considérées identiques si :
- elles sont toutes les deux
undefined - elles sont toutes les deux
null - elles sont toutes les deux
trueou toutes les deuxfalse - elles sont des chaînes de caractères de la même longueur et avec les mêmes caractères (dans le même ordre)
- elles sont toutes les deux le même objet
- elles sont des nombres et
- sont toutes les deux égales à
+0 - sont toutes les deux égales à
-0 - sont toutes les deux égales à
NaN - sont non-nulles, ne sont pas
NaNet ont toutes les deux la même valeur
- sont toutes les deux égales à
Attention, ce n'est pas la même égalité qu'avec l'opérateur==. L'opérateur == applique différentes conversions à chaque opérande (si ils ne sont pas du même type) avant de tester l'égalité (d'où le comportement"" == false qui donnetrue),Object.is ne convertit aucune des deux valeurs.
Cette égalité est également différente de l'égalité stricte qu'on peut avoir avec l'opérateur===. L'opérateur === (et également l'opérateur ==) considère que-0 et+0 sont égales et queNumber.NaN n'est pas égal àNaN.
Exemples
Object.is("toto", "toto"); // trueObject.is(window, window); // trueObject.is("toto", "truc"); // falseObject.is([], []); // falsevar toto = { a: 1 };var truc = { a: 1 };Object.is(toto, toto); // trueObject.is(toto, truc); // falseObject.is(null, null); // true// Cas aux limites (cas spéciaux)Object.is(0, -0); // falseObject.is(-0, -0); // trueObject.is(NaN, 0 / 0); // trueProthèse d'émulation (polyfill)
if (!Object.is) { Object.is = function (v1, v2) { // Algorithme SameValue if (v1 === v2) { //Étapes 1-5, 7-10 //Étapes 6.b-6.b +0 !=-0 return v1 !== 0 || 1 / v1 === 1 / v2; } else { //Étapes 6.a: NaN == NaN return v1 !== v1 && v2 !== v2; } };}Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-object.is> |
Compatibilité des navigateurs
Voir aussi
- Guide JavaScript : L'égalité en JavaScript qui illustre les trois manières de comparer en JavaScript
- Les opérateurs de comparaison