Object.is în JavaScript

Obiecte ES2015 (ES6)

Compară două valori ca ===, cu două excepții: NaN este egal cu NaN, iar 0 și -0 sunt diferite.

Sintaxă
Object.is(valoare1, valoare2)

Ce face Object.is

Object.is spune dacă două valori sunt „aceeași valoare”. Se comportă ca ===, cu excepția a două cazuri speciale: Object.is(NaN, NaN) este true, iar Object.is(0, -0) este false.

Obiectele sunt comparate după identitate: două obiecte cu același conținut sunt diferite. Este algoritmul folosit de React pentru a decide dacă starea s-a schimbat.

Parametri

Parametru Descriere
valoare1, valoare2 Valorile comparate.

Ce returnează

true sau false.

Exemple

Exemplul 1: Object.is față de ===

console.log(NaN === NaN, Object.is(NaN, NaN));
console.log(0 === -0, Object.is(0, -0));
console.log("a" === "a", Object.is("a", "a"));
console.log(Object.is({}, {}));

Rezultat

false true
true false
true true
false

Greșeli frecvente

  • Folosești Object.is pentru a compara conținutul a două obiecte. Compară doar identitatea; pentru conținut, compară proprietățile sau JSON.stringify.

Comenzi înrudite

  • Number.isNaN / isNaN: Verifică dacă o valoare este NaN („nu este un număr”), rezultatul unui calcul sau al unei conversii eșuate.
  • if / else: Rulează un bloc de cod doar dacă o condiție este adevărată.
  • typeof: Returnează tipul unei valori ca text: „string”, „number”, „boolean”, „object” etc.