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