Object.is
Сравнивает два значения почти как ===, но правильно обрабатывает NaN и -0.
Доступно с: ES2015
Синтаксис
Object.is(value1, value2)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| value1 | any | Первое значение. |
| value2 | any | Второе значение. |
Возвращаемое значение
booleantrue, если значения одинаковые.
Примеры
Отличия от строгого равенства:
console.log(NaN === NaN, Object.is(NaN, NaN));
console.log(0 === -0, Object.is(0, -0));Результат:
false true
true falseДля остальных значений результат такой же, как у ===:
console.log(Object.is('a', 'a'));
console.log(Object.is({}, {}));Результат:
true
falseПримечания
Объекты, как и при ===, сравниваются по ссылке: два одинаковых на вид объекта не равны.
См. также
- Strict equality (===) — Сравнивает значения без преобразования типов.
- Number.isNaN — Проверяет, что значение — NaN, без преобразования типов.
В учебнике
- Сравнение — Операторы сравнения в JavaScript — больше, меньше, строгое и нестрогое равенство, сравнение строк и NaN.