JavaScript Object.is() 方法

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() 也是没有问题的。

上一篇: Object.preventExtensions()

下一篇: Object.hasOwn()

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号