ES6 Object.is()

ES5 中判断两个值是否相等:

(1)相等运算符(==)

(2)严格相等运算符(===)

这两个方法各自有各自的特点:

F12打开chrome调试器,如下例子:

5=="5"
//true

可以看到:相等运算符(==)会对比较的两个值进行类型转换。

5==="5"
//false

严格相等运算符(==)不会对比较的两个值进行类型转换。

NaN === NaN
//false

但是,使用严格相等运算符(==),NaN 不等于自身。

+0 === -0
//true

ES6 Object.is()

ES6 添加了新方法Object.is来比较两个值严格相等。

定义:Object.is 方法判断两个值是否是相同的值。
语法:Object.is(value1, value2)
value1:第一个需要比较的值
value2:第二个需要比较的值

返回值:表示两个参数是否相同的 布尔值 。

它与严格比较运算符(===)基本一致,不同之处只有两个:
(1)+0不等于-0;
(2)NaN等于自身。

Object.is()方法可应用于:

(1)比较两个字符串。

(2)比较两个数字。

(3)比较两个对象。

Object.is('abc','abc')
//true
Object.is('abc','abcd')
//false
Object.is(window,window)
//true
Object.is([],[])
//false
Object.is({},{})
//false
Object.is(+0,-0)
//false
Object.is(0,-0)
//false
Object.is(0,+0)
//true
Object.is(NaN,NaN)
//true

Object.is()方法和“==”运算符之间的区别:

+0 == -0
//true
+0 === -0
//true
Object.is(+0,-0)
//false

可以看到:

== 和 === 运算符将数字值“+0”和“-0”视为相等,而Object.is()方法则将它们视为不相等。

NaN == NaN
//false
NaN === NaN
//false
Object.is(NaN,NaN)
//true

可以看到:

如果两个值都是数字并且都是“NaN”,== 和 === 将其视为不相等;而Object.is()方法则将它们视为相等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值