JavaScript中奇葩的假值
通常在以下语句结构中需要判断真假
- if分支语句
- while循环语句
- for里的第二个语句
如
1
2
3
4
5
6
7 |
if
(boo) { // do something } while
(boo) { // do something } |
JavaScript中有6个值为“假”,这六个值是
- false
- null
- undefined
- 0
- ‘‘ (空字符串)
- NaN
这里面false本身是布尔类型,其它5个则不是。
除了这6个外,其它均为“真” ,包括对象、数组、正则、函数等。注意 ‘0‘、‘null‘、‘false‘、{}、[]也都是真值 。
虽然这六个值都为“假”,它们之间并非都相等
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 |
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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。