Dans ES6, que fait 'Object.is()' ?

Explication de 'Object.is()' dans ES6

Dans ES6 (la version 2015 de JavaScript), Object.is() est une fonction utilisée pour vérifier si deux valeurs sont exactement les mêmes. Cette méthode compare deux valeurs et retourne un booléen true si les valeurs sont identiques sans faire de conversion implicite, c'est-à-dire qu'elles doivent être de même type et avoir la même valeur. En comparaison, l'opérateur de comparaison == effectue une conversion des types avant la comparaison, et === effectue une comparaison strictement égale sans conversion des types, mais avec des exceptions.

Voici un exemple d'utilisation de Object.is() :

let val1 = 5;
let val2 = "5";
let val3 = 5;

console.log(Object.is(val1, val2));  //Affiche false
console.log(Object.is(val1, val3));  //Affiche true

Dans le code ci-dessus, la méthode Object.is() est utilisée pour comparer val1 et val2 et val1 et val3. La première comparaison renvoie false parce que val1 est un nombre et val2 est une chaîne, donc ils sont de types différents. La deuxième comparaison renvoie true parce que val1 et val3 sont tous les deux des nombres avec la même valeur.

Object.is() a aussi une particularité lorsqu'il s'agit de comparer NaN (Not a Number) et les valeurs négatives zéro. Alors que === ne peut pas distinguer NaN de NaN, ni -0 de +0, la fonction Object.is() est capable de le faire :

console.log(Object.is(NaN, NaN));  //Affiche true
console.log(Object.is(-0, +0));    //Affiche false

Dans ce code, Object.is() peut identifier correctement que NaN est équivalent à NaN et que -0 n'est pas égal à +0.

Donc, pour une comparaison exacte entre deux valeurs, Object.is() est préférable aux opérateurs == et ===.

Related Questions

Trouvez-vous cela utile?