Object.is()
в ES6Object.is()
- это функция в JavaScript, введенная в ECMAScript 6 (ES6). Она проверяет, являются ли два значения одним и тем же значением.
В значительной степени Object.is()
работает так же, как оператор строгой эквивалентности (===), но с двумя различиями:
NaN === NaN
возвращает false
, в то время как Object.is(NaN, NaN)
возвращает true
, так как NaN не равно самому себе в JavaScript.+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. Иначе, для большинства случаев, оператор ===
сработает быстрее и будет чрезвычайно эффективным.