JavaScript中有6個值爲「假」

一般在如下語句結構中須要判斷真假數組

  1. if分支語句函數

  2. while循環語句spa

  3. for裏的第二個語句code

對象

1
2
3
4
5
6
7
if  (boo) {
     // do something
}
 
while  (boo) {
     // do something
}

 

JavaScript中有6個值爲「假」,這六個值是ip

  1. falseci

  2. null字符串

  3. undefinedit

  4. 0io

  5. '' (空字符串)

  6. 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闡述了全部情形

相關文章
相關標籤/搜索