一般在如下語句結構中須要判斷真假數組
if分支語句函數
while循環語句spa
for裏的第二個語句code
如對象
1
2
3
4
5
6
7
|
if
(boo) {
// do something
}
while
(boo) {
// do something
}
|
JavaScript中有6個值爲「假」,這六個值是ip
falseci
null字符串
undefinedit
0io
'' (空字符串)
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
固然,對於這一切,查看下規範是最踏實的,ES裏的ToBoolean闡述了全部情形