JavaScript中奇葩的假值示例应用

  通常在以下语句结构中需要判断真假

  if分支语句

  while循环语句

  for里的第二个语句

  如

  

复制代码 代码如下:

  if (boo) {

  // do something

  }

  while (boo) {

  // do something

  }

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

  false

  null

  undefined

  0

  '' (空字符串)

  NaN

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

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

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

  

复制代码 代码如下:

  console.log( false == null ) // false

  console.log( false == undefined ) // false

  console.log( false == 0 ) // true

  console.log( false == '' ) // true

  console.log( false == NaN ) // false

  console.log( null == undefined ) // true

  console.log( null == 0 ) // false

  console.log( null == '' ) // false

  console.log( null == NaN ) // false

  console.log( undefined == 0) // false

  console.log( undefined == '') // false

  console.log( undefined == NaN) // false

  console.log( 0 == '' ) // true

  console.log( 0 == NaN ) // false

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

  false 除了和自身比较为true外,和0,'' 也为true

  null只和undefined比较时为true, 反过来undefined也仅和null比较为true,没有第二个

  0除了和false比较为true,还有一个空字符串 ''

  空字符串''出了和false比较为true,还有一个数字0