大佬教程收集整理的这篇文章主要介绍了为什么`null> = 0 && null <= 0',而不是`null == 0`?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
您真正的问题似乎是:@H_944_3@
为什么:@H_944_3@
null >= 0; // true
但:@H_944_3@
null == 0; // false
真正发生的是 大于等于运算符(>=
)执行类型强制(toprimitive
),提示类型为number
,实际上所有关系运算符都具有这种行为。@H_944_3@
null
等于运算符 (==
)以特殊方式处理。在简短的,它只 强制转换 到undefined
:@H_944_3@
null == null; // true
null == undefined; // true
值,例如false
,''
,'0'
,和[]
被受数字类型强制,它们都强迫到零。@H_944_3@
您可以在“抽象相等比较算法”和“抽象关系比较算法”中查看此过程的内部细节。@H_944_3@
综上所述:@H_944_3@
我必须编写一个例程,如果变量的类型为number
,则将变量的值加1,否则将变量的值分配为0,其中变量的初始值为null
或undefined
。@H_944_3@
第一个实现是v >= 0 ? v += 1 : v = 0
因为我认为没有数字会使算术表达式为假,但是由于null >=
0
计算为真,所以这是错误的。然后,我得知null
行为类似于0,并且以下表达式均被评估为true。@H_944_3@
null >= 0 && null <= 0
!(null < 0 || null > 0)
null + 1 === 1
1 / null === Infinity
当然null
不是0。null == 0
被评估为false。这使看似重言式的表达成为(v >= 0 && v <= 0) === (v ==
0)
错误。@H_944_3@
为什么null
实际上不是0,却像0?@H_944_3@
以上是大佬教程为你收集整理的为什么`null> = 0 && null <= 0',而不是`null == 0`?全部内容,希望文章能够帮你解决为什么`null> = 0 && null <= 0',而不是`null == 0`?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。