1. 程式人生 > >javaScript中奇葩的假值

javaScript中奇葩的假值

http java color false javascrip fin sna 沒有 spa

JavaScript中有 6 個值為“假”,這六個值是:

  1. false
  2. null
  3. undefined
  4. 0
  5. ‘‘(空字符串)
  6. 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中奇葩的假值