Baseline Widely available
La méthode Object.is()
permet de déterminer si deux valeurs sont les mêmes.
Object.is(value1, value2);
Paramètres
valeur1
La première valeur à comparer.
valeur2
La seconde valeur à comparer.
Un booléen indiquant si les arguments ont la même valeur.
DescriptionObject.is()
permet de déterminer si deux valeurs sont identiques. Deux valeurs sont considérées identiques si :
undefined
null
true
ou toutes les deux false
+0
-0
NaN
NaN
et ont toutes les deux la même valeurAttention, 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 donne true
), 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 que Number.NaN
n'est pas égal à NaN
.
Object.is("toto", "toto"); // true
Object.is(window, window); // true
Object.is("toto", "truc"); // false
Object.is([], []); // false
var toto = { a: 1 };
var truc = { a: 1 };
Object.is(toto, toto); // true
Object.is(toto, truc); // false
Object.is(null, null); // true
// Cas aux limites (cas spéciaux)
Object.is(0, -0); // false
Object.is(-0, -0); // true
Object.is(NaN, 0 / 0); // true
Prothè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 Compatibilité des navigateurs Voir aussi
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4