javaScript中奇葩的假值
Posted txwslyf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaScript中奇葩的假值相关的知识,希望对你有一定的参考价值。
javascript中有 6 个值为“假”,这六个值是:
- false
- null
- undefined
- 0
- \'\'(空字符串)
- 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中去除数组中的假值(0, 空,undefined, null, false)