Что делает 'Object.is()' в ES6?

Использование Object.is() в ES6

Object.is() - это функция в JavaScript, введенная в ECMAScript 6 (ES6). Она проверяет, являются ли два значения одним и тем же значением.

В значительной степени Object.is() работает так же, как оператор строгой эквивалентности (===), но с двумя различиями:

  • Для NaN: NaN === NaN возвращает false, в то время как Object.is(NaN, NaN) возвращает true, так как NaN не равно самому себе в JavaScript.
  • Для +0 и -0: +0 === -0 возвращает true, в то время как Object.is(+0, -0) возвращает false.

Исходя из этого, было бы корректно говорить, что Object.is() в ES6 проверяет два значения на полное совпадение, включая особые случаи, где обычное строгое сравнение может давать не совсем очевидные результаты.

Рассмотрим несколько примеров:

console.log(Object.is(10,10));       // Возвращает true
console.log(Object.is('js','js'));   // Возвращает true
console.log(Object.is(null,null));   // Возвращает true
console.log(Object.is('js','JS'));   // Возвращает false
console.log(Object.is(NaN,NaN));     // Возвращает true
console.log(Object.is(+0,-0));       // Возвращает false

Обратите внимание, что Object.is() эксплуатируется в особенности для сравнения значения NaN с самим собой.

Этот метод следует использовать в сценариях, когда вы работаете с важными численными свойствами и вам важно различие между +0 и -0. Иначе, для большинства случаев, оператор === сработает быстрее и будет чрезвычайно эффективным.

Related Questions

Считаете ли это полезным?