區(qū)別:“==”表示相等,“====”表示嚴(yán)格相等?!?=”運(yùn)算符會在進(jìn)行相等比較之前先進(jìn)行必要值的類型轉(zhuǎn)換;而“===”運(yùn)算符不會執(zhí)行類型轉(zhuǎn)換,因此如果兩個值類型不同,那么比較時,直接返回false。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
js中==和===區(qū)別
簡單來說: == 代表相等, ===代表嚴(yán)格相等, 為啥這么說呢,
這么理解: 當(dāng)進(jìn)行雙等號比較時候: 先檢查兩個操作數(shù)數(shù)據(jù)類型,如果相同, 則進(jìn)行===比較, 如果不同, 則愿意為你進(jìn)行一次類型轉(zhuǎn)換, 轉(zhuǎn)換成相同類型后再進(jìn)行比較, 而===比較時, 如果類型不同,直接就是false.
操作數(shù)1 == 操作數(shù)2, 操作數(shù)1 === 操作數(shù)2
比較過程:
雙等號==:
?。?)如果兩個值類型相同,再進(jìn)行三個等號(===)的比較
?。?)如果兩個值類型不同,也有可能相等,需根據(jù)以下規(guī)則進(jìn)行類型轉(zhuǎn)換在比較:
1)如果一個是null,一個是undefined,那么相等
2)如果一個是字符串,一個是數(shù)值,把字符串轉(zhuǎn)換成數(shù)值之后再進(jìn)行比較
三等號===:
?。?)如果類型不同,就一定不相等
(2)如果兩個都是數(shù)值,并且是同一個值,那么相等;如果其中至少一個是NaN,那么不相等。(判斷一個值是否是NaN,只能使用isNaN( ) 來判斷)
?。?)如果兩個都是字符串,每個位置的字符都一樣,那么相等,否則不相等。
?。?)如果兩個值都是true,或是false,那么相等
?。?)如果兩個值都引用同一個對象或是函數(shù),那么相等,否則不相等
?。?)如果兩個值都是null,或是undefined,那么相等
【推薦學(xué)習(xí):javascript高級教程】