Object.is() 语法
Object.is() 是 JavaScript 的一个静态方法,它用于判断两个值是否相等,并且不会存在 “==” 或 “===” 的怪异行为。
语法:
Object.is(a, b)说明:
Object.is() 方法接收 2 个参数,a 和 b 是任意类型的值。
Object.is() 返回一个布尔值。只有当 a 和 b 具有 “相同类型” 以及 “相同的值” 时,Object.is() 才会返回 true,否则返回 false。
注意:
- is() 方法是一个静态方法,它只能被类名(即 Object)调用,而无法被实例调用。
- Object.is() 不会进行类型转换。如果两个值的类型不同,它们就不是相同的。
Object.is() 摘要
| 属于 | JavaScript Object 对象 |
|---|---|
| 使用频率 | 中 |
| 官方文档 | 查看 |
| MDN | 查看 |
Object.is() 示例
接下来,我们通过一个简单的例子来讲解一下 Object.is() 方法是如何使用的。
示例:Object.is() 基本用法
console.log(+0 == -0); // true
console.log(+0 === -0); // true
console.log(Object.is(+0, -0)); // false
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
console.log(Object.is(NaN, NaN)); // true
console.log(6 == "6"); // true
console.log(6 === "6"); // false
console.log(Object.is(6, "6")); // false运行结果如下。
true
true
false
false
false
true
true
false
false分析:
Object.is() 与 “===” 的运行结果,在大多数情况下是相同的,除了这 2 种情况:① +0 与 -0;② NaN 与 NaN。在大多数项目开发中,我们不会闲着无聊去比较 +0 与 -0 是否相等,或者去比较两个 NaN 是否相等。
也就是说,虽然现在有了 Object.is(),但是并不代表 “===” 这种方式就被舍弃了。在实际开发中,我们更多还是使用 “===” 来判断两个值是否相等。当然了,你使用 Object.is() 也是没有问题的。
