JS基础之 == 与 ===

本文深入探讨JavaScript中的两种相等运算符:严格相等运算符(===)和相等运算符(==),并详细解释它们的工作原理及比较规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

严格相等运算符(Strict Equality Comparison)===

ECMA-262的中定义了 === 的比较规范,我们可以通过规范来加深对此的理解
http://www.ecma-international...
clipboard.png

clipboard.png

总结下来:就两点吧

 1. 如果类型不一样,就直接返回false
 2. 类型一样,除了数字类型,只要值一样,就返回true。数字中存在一个比较特殊的值(NaN), 只要        
    两边只要存在一个NaN就返回false。需要注意。

== 相等运算符(Abstract Equality Comparison)

ECMA-262中定义了 == 的比较规范,我们可以通过规范来加深对此的理解
http://www.ecma-international...
clipboard.png

== 是在面试中很容易遇到或者工作中容易出错误的地方。我们需要好好掌握它的规范,当然,使用 === 替换 == 是一个好习惯。但是我们还是需要对此好好掌握(知其然,还需要知其所以然)
总结下来:有下面几点

 1.  null、undefined对比返回true,而其他类型对比返回false
 2.  String、Boolean、Number类型转换成为Number,然后进行比较。转换规则可以参考 
     https://segmentfault.com/a/1190000013262657   
 3.  Object类型和基本类型比较,Object类型通过valueOf和toString两个方法, 获取到基本类型,然后按照规则2进行比较
 4.  相同类型就按照严格相等运算(===)来比较。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值