关于null == 0?返回false的问题

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

posted @ 2016-03-11 11:06  Walker-lyl  阅读(2631)  评论(0编辑  收藏  举报