每天一条JS小知识点 为什么应该在相等比较中使用 Object.is()

本文探讨了JavaScript中为何在相等比较中推荐使用Object.is(),而非全等操作符。它避免了类型转换带来的意外结果,尤其在处理NaN、空值和数组等类型时,提供更准确的判断。通过实例和对比,揭示了其在避免NaN比较问题上的优势。
摘要由CSDN通过智能技术生成

每天一条JS小知识点 为什么应该在相等比较中使用 Object.is()

我们都知道 JavasSript 是弱类型的,并且当我们使用 == 作比较时,在一些情况下由于类型转换或者说“把两个操作数中的一个转换成另一个,然后在比较”,会出现意想不到的结果。

0 == ' ' // true
null == undefined //true
[1] == true //true

因此 JavaScript 中给我们提供了全等操作符 ===, 它比不全等操作符更加严格并且不会发生类型转换。但是用 === 来进行比较并不是最好的解决方案。比如:

NaN === NaN //false

好在ES6 中提供了新的 Object.is() 方法,它具有 === 的一些特点,而且更好、更精确

Object.is(0 , ' '); //false
Object.is(null, undefined); //false
Object.is([1], true); //false
Object.is(NaN, NaN); //true

附图对比
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值