呜呜呜。。。,原谅我js基础太弱了。今日写代码时,index是数组索引,但是在不满足条件的情况下会给它置null,我渲染的时候用if(index >= 0),结果代码执行了,让我百思不得其解。
呜呜呜。。。,原谅我js基础太弱了。今日写代码时,index是数组索引,但是在不满足条件的情况下会给它置null,我渲染的时候用if(index >= 0),结果代码执行了,让我百思不得其解。
null >=0 === Number(null)>=0
Number(null) --> 0
0 >=0 --> true
// 反正就是在 关系运算符中 null 会被转换成 Number
// 在相等 运算中 null 背会转换成 Boolean 的 false
8 回答4.6k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
js 最让人迷惑的地方,相信我,这不是你基础弱不弱的问题,这是js语言本身的锅
参见The Greater-than-or-equal Operator ( >= )
null >= 0
其实求的是null < 0
的值, 如果null < 0
为false
,那么null >= 0
则为true
那么来看看
null < 0
的值根据上文后面11.8.5的描述:
ToPrimitive(null)
保持不变,ToPrimitive(0)
保持不变String
类型,调用ToNumber
, ToNumber(null) = +0, ToNumber(0) = 00 < 0
结果为false
true
所以js中有了独特的
优点