当出现用 null 做判断时,会出现 (null >= 0) == true,(null >0 || null == 0)== false 的情况。
null >=0 的时候,强转为数字类型。在进行 null >= 0 比较时,它是通过比较 null < 0 得到的答案,如果 a = b 为 false,如果 a = b 为true,即 0 < 0 为 false ,也就是 null < 0 为 false,那么 null > 0 为 true。所以 null >= 0 为 true。
null == 0 的时候是特殊处理,不会转为数字类型,不会转化为数值,但如果左面是字符串右面是数值就会被转化。null 是对象(空对象, 没有任何属性和方法)。而 0 是数字。前面说过 == 并不转换类型,只是比较。所以,为 false。