javaScript中奇葩的假值

Posted txwslyf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaScript中奇葩的假值相关的知识,希望对你有一定的参考价值。

javascript中有 6 个值为“假”,这六个值是:

  1. false
  2. null
  3. undefined
  4. 0
  5. \'\'(空字符串)
  6. NaN

这里面 false 本身是布尔类型,其它 5 个则不是。

除了这 6 个外,其它均为“真” ,包括对象、数组、正则、函数等。注意 \'0\'、\'null\'、\'false\'、{}、[]也都是真值  。

 

虽然这六个值都为“假”,它们之间并非都相等:

 1     console.log( false == null )      // false
 2     console.log( false == undefined ) // false
 3     console.log( false == 0 )         // true
 4     console.log( false == \'\' )        // true
 5     console.log( false == NaN )       // false
 6 
 7     console.log( null == undefined ) // true
 8     console.log( null == 0 )         // false
 9     console.log( null == \'\' )        // false
10     console.log( null == NaN )       // false
11 
12     console.log( undefined == 0)   // false
13     console.log( undefined == \'\')  // false
14     console.log( undefined == NaN) // false
15 
16     console.log( 0 == \'\' )  // true
17     console.log( 0 == NaN ) // false

对于“==”,以上得出下列结论:

  • false 除了和自身比较为 true 外,和 0,"" 比较也为 true
  • null 只和 undefined 比较时为 true, 反过来 undefined 也仅和 null 比较为 true,没有第二个
  • 0 除了和 false 比较为 true,还有空字符串 \'\'" 和空数组 []
  • 空字符串 \'\' 除了和 false 比较为 true,还有一个数字 0

 参考连接:http://www.cnblogs.com/snandy/p/3589517.html

以上是关于javaScript中奇葩的假值的主要内容,如果未能解决你的问题,请参考以下文章

js判断假值

JavaScript 真值和假值

JavaScript 真值和假值

JS中去除数组中的假值(0, 空,undefined, null, false)

Falsy Bouncer-freecodecamp算法题目

区分JS的空值