es6
Что делает '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. Иначе, для большинства случаев, оператор === сработает быстрее и будет чрезвычайно эффективным.
Хотите ещё? Пройдите полный тест «Основы ES6».
Начать викторину