0 >= null 返会的是true,而0 == null 返会的是false?
js 比较运算符的算法,除了相等运算符号(==)和严格相等运算符(===),js 的比较运算符的规则:
1、如果两个运算子都是字符串,则按照字典顺序比较
2、否则,将两个运算子都转成数值,再进行比较
而 js 的 null、undefined 与其他类型的值进行 == 比较时,结果都为 false;null == undefined 结果为 true
相等运算符隐藏的类型转换,会带来一些违反直觉的结果。所以请尽量使用 ===
第一个数据转换,很容易得到答案
第二个null是特殊情况(null没有valueOf, toString等方法),它不能转换成其他值(具体见js 高程),无法与0比较,所以返回false,不过可以用Number(null)转换,这样才可以返回true
10 回答11.2k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
比较过程,比较
0<null
,返回false
,然后这个表达式就返回true
。是不是有点坑!