null 特殊转换

null 特殊转换, 求赐教

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

!!null         // false
null == false  // false
null == true   // false
null >= false  // true
阅读 1.9k
2 个回答

你昨天问过了,我再回答一遍。

  1. +操作符,如果只有右边,那么就等于调用Nunber函数。
  2. == 操作符, null 只跟 null 和 undefined 相等,其余都不相等。
  3. !!强制转换为布尔值。在JavaScript中,undefined,null,false,+0,-0,NaN,'' 都可以被强制转换为false。

使用<操作符,如果比较的一方不是数字,会调用Number函数,转换为数字;

Number({valueOf:1}) 返回1
Number(null) 返回0
Number(undefined) 返回NaN
Number(false) 返回0
Number([]) 返回0
Number('') 返回0

因此 [] > false => false,
[] > null => false
[] > undefined => false
[] > '' => false

  1. null >0, null<0, 这时候,null会被转换为数字, Number(null)为0 , 0不大于0,也不小于0;null > -1 返回true, null >0.1 返回false, 很显然0 > -1, 0 < 0.1;
  2. null > false ,相当于 Number(null) > Number(false), 0 >0 不成立,所以结果为false。
  3. JavaScript中, a<=b的结果是通过 对(b<a)的结果取反(跟我们习惯上的想法不一样)。

因为 null < 0 为 false, 因此 null>= false 结果为true。

null只会等于undefined 即null==undefined是true外 其他< >都会是false >= <=这种是取< >的反 这块你可以看下
你不知道的javascript 里边有解释

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题