簡單來說: == 代表相同以蕴, ===代表嚴格相同, 為啥這么說呢盗蟆,?
這么理解: 當進行雙等號比較時候: 先檢查兩個操作數(shù)數(shù)據(jù)類型,如果相同舒裤, 則進行===比較喳资, 如果不同, 則愿意為你進行一次類型轉換腾供, 轉換成相同類型后再進行比較仆邓, 而===比較時, 如果類型不同伴鳖,直接就是false.
操作數(shù)1 == 操作數(shù)2节值,??操作數(shù)1 === 操作數(shù)2
比較過程:
雙等號==:?
(1)如果兩個值類型相同榜聂,再進行三個等號(===)的比較
「懔啤(2)如果兩個值類型不同,也有可能相等须肆,需根據(jù)以下規(guī)則進行類型轉換在比較:
1)如果一個是null匿乃,一個是undefined,那么相等
2)如果一個是字符串豌汇,一個是數(shù)值幢炸,把字符串轉換成數(shù)值之后再進行比較
三等號===:
(1)如果類型不同拒贱,就一定不相等
⊥鸹病(2)如果兩個都是數(shù)值,并且是同一個值逻澳,那么相等闸天;如果其中至少一個是NaN,那么不相等斜做。(判斷一個值是否是NaN苞氮,只能使用isNaN( ) 來判斷)
(3)如果兩個都是字符串陨享,每個位置的字符都一樣葱淳,那么相等钝腺,否則不相等。
≡薏蕖(4)如果兩個值都是true艳狐,或是false,那么相等
∶笊!(5)如果兩個值都引用同一個對象或是函數(shù)毫目,那么相等,否則不相等
』逦辍(6)如果兩個值都是null镀虐,或是undefined,那么相等