Object.is()Object.is() выполняет сравнение по одинаковому значению между двумя значениями. Он работает почти идентично оператору строгого равенства (===), но обрабатывает два граничных случая более точно и предсказуемо.
===Object.is() отличается от === ровно в двух сценариях:
NaN — Object.is(NaN, NaN) возвращает true, тогда как NaN === NaN возвращает falseObject.is(+0, -0) возвращает false, тогда как +0 === -0 возвращает trueObject.is(NaN, NaN); // true
NaN === NaN; // false
Object.is(+0, -0); // false
+0 === -0; // true
Предпочитай Object.is(), когда твоя логика требует математически точного сравнения значений, в частности:
NaN без использования Number.isNaN()+0 и -0, что может быть важно в математических вычислениях или физическом моделированииДля повседневных сравнений === остаётся стандартным выбором. Object.is() лучше всего зарезервировать для случаев, когда эти граничные случаи действительно важны.
Object.is() рассматривает NaN как равный самому себе, что делает его надежной альтернативой Number.isNaN() для обнаружения значений NaN.
Новый — ещё не проверен сообществом
Вы