В этом руководстве вы узнаете о методе 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
Для справки см. следующую таблицу сравнения: