一、等號和非等號(==、!==)
這兩個運算子會進行型別轉換,基本規則如下:
1)如果一個運算數是Boolean值,把它轉成成數字值。false轉換為0,true轉換為1。
2)如果一個運算子是字串,另一個是數字,檢查相等性之前,嘗試把字串轉換為數字。
3)如果一個運算子是物件,另一個是字串,檢查相等性之前,嘗試把物件轉換為字串(呼叫toString())。
4)如果一個運算子是物件,另一個是數字,檢查相等性之前,嘗試把物件轉換為數字。
在進行比較時,該運算子還遵守下列規則:
5)值null與undefined相等。 //null==undefined -> true
6)在檢查相等性時,不能把null和undefined轉換為其他值。 //undefined==0 ->false ; null==0 ->false
7)NaN不等於任何值。
8)兩個運算子都是物件,比較它們的引用值,指向同一個物件,那麼返回true
二、全等號與非全等號
檢查相等性前,不執行型別轉換。
三、JavaScript真價值
1)假值:false、null、undefined、空字串''、數字0、數字NaN
2)真值:true、非空字串、所有的物件
四、函式呼叫運算子()
官方假定以單詞function開頭的語句是一個function語句,解決方法就是把函式呼叫括在一個圓括號中。
(function(){//do something;}())