# 描述

ES6 引入 Object.is 方法,它用于比较两个值是否严格相等。

相等运算符(==)会自动转换类型,严格相等运算符 NaN 不等于自身,而且 +0 等于 -0

Object.is() 方法和严格相等运算符基本一致,不同之处有两个,一是 +0 不等于 -0,二是 NaN 等于自身。

# 参数

两个进行比较的值

# 返回值

如果两个参数相等,返回 true ,否则返回 false

# 示例

# 0. 基本使用

接收两个参数用于对比

Object.is({}, {}); // false

Object.is("abc", "abc"); // true

# 1. Object.is() 不会自动转换类型

console.log("5" == 5); // true

console.log("5" === 5); // false

console.log(Object.is("5", 5)); // false

# 2. Object.is() 和 严格相等(===)的区别

console.log(NaN === NaN); // false

console.log(Object.is(NaN, NaN)); // true
console.log(+0 === -0);  // true

console.log(Object.is(-0, +0)); // false
上次更新: 8/11/2021, 10:22:34 AM