首页 > 技术文章 > 关于null == 0?返回false的问题

Walker-lyl 2016-03-11 11:06 原文

1.首先我们先看各种情况的结果:

  

null > 0? //=>false
null < 0? //=>false
null >= 0?  //=>true
null <= 0?  //=>true

由以上四种情况我们很容易推出 null == 0?的结果,什么呢?true?false?  其实答案为false,为什么?

1.首先null > 0; 和 null < 0; 的结果是将null转换为数字0来进行的比较判断;

  而判断null >= 0;时是靠null < 0 为false来判断的,如果 null < 0为fasle,则null > 0为true,所以null >= 0为true。

  反之,null  <= 0;为true同理。

2.但判断null == 0时,尽管 等号右端为数字,但null并未进行数值转换,所以此时,null为对象(空对象,无任何属性和方法),而0为Number类型,比较结果自然是false了。

参考链接:http://www.jb51.net/article/41421.htm

推荐阅读