比较运算符 == 与 >、<、>=、<= 的转换规则并不完全一致

在 JavaScript中,当两个值在用比较运算符 ==><>=<= 比较大小时,会发生到数字类型的转换。

'2' > 1 // true。字符串 "2" 转换成了数字 2
'01' == 1 // true。字符串 "01" 转换成了数字 1
复制代码

但有一点行为,== 与其它运算符表现的并不一致——在处理 undefinednull 时——== 运算符不会进行转换。

null >= 0 // true
null == 0 // false
复制代码

在进行 >= 比较时,null 转成数字变成 0,所以 null >= 0 的结果是 true

对于比较 null == 0,因为 null 并不会发生转换,所以结果为 false

还有一点有趣的地方是:ECMAScript 规范中定义了 null == undefined 结果为 true,这并没有道理可寻,知道即可。

(完)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值