В этом руководстве вы узнаете о методе Object.is() в JavaScript, чтобы проверить, совпадают ли два значения.
Object.is() ведет себя как оператор === с двумя отличиями:
- -0 и +0
- NaN
Отрицательный ноль
Оператор === рассматривает -0 и +0 как одно и то же значение:
let amount = +0, volume = -0; console.log(volume === amount);
Выход:
true
Однако Object.is() обрабатывает +0 и -0 как разные значения. Например:
let amount = +0, volume = -0; console.log(Object.is(amount, volume));
Выход
false
NaN
Оператор === считает NaN и NaN разными значениями. NaN — единственное число, которое не равно самому себе.
Пример:
let quantity = NaN; console.log(quantity === quantity);
Выход:
false
Однако Object.is() обрабатывает NaN как одно и то же значение:
let quantity = NaN;
console.log(Object.is(quantity, quantity));
Выход:
true
Для справки см. следующую таблицу сравнения:

