a==b
image.png
做相等運(yùn)算時(shí),一般傾向于將不同的數(shù)據(jù)類(lèi)型都轉(zhuǎn)化為數(shù)值逮京,或是轉(zhuǎn)化為相同的數(shù)據(jù)類(lèi)型.
如果兩個(gè)值類(lèi)型相同卿堂,則執(zhí)行嚴(yán)格相等的運(yùn)算
如果兩個(gè)值的類(lèi)型不同
如果一個(gè)是null,一個(gè)是undefined造虏,那么相等
如果一個(gè)是數(shù)字御吞,一個(gè)是字符串,先將字符串轉(zhuǎn)為數(shù)字漓藕,然后比較
如果一個(gè)值是true/false則將其轉(zhuǎn)為1/0比較
如果一個(gè)值是對(duì)象陶珠,一個(gè)是數(shù)字或字符串,則嘗試使用valueOf和toString轉(zhuǎn)換后比較
其它就不相等了
關(guān)于if()
if后的括號(hào)里的表達(dá)式會(huì)被強(qiáng)制轉(zhuǎn)換為布爾類(lèi)型
image.png
在這里強(qiáng)烈推薦大家使用
===
嚴(yán)格相等享钞,不會(huì)出錯(cuò)揍诽。
記住五個(gè)false值0
null
undefined
空字符串
NaN
。