對(duì)于 == 來(lái)說(shuō),如果對(duì)比雙方的類(lèi)型不一樣,就會(huì)進(jìn)行類(lèi)型轉(zhuǎn)換。假如對(duì)比 x 和 y 是否相同,就會(huì)進(jìn)行如下判斷流程:
1. 首先會(huì)判斷兩者類(lèi)型是否**相同,**相同的話就比較兩者的大小;
2. 類(lèi)型不相同的話,就會(huì)進(jìn)行類(lèi)型轉(zhuǎn)換;
3. 會(huì)先判斷是否在對(duì)比 null 和 undefined,是的話就會(huì)返回 true
4. 判斷兩者類(lèi)型是否為 string 和 number,是的話就會(huì)將字符串轉(zhuǎn)換為 number
5. 判斷其中一方是否為 boolean,是的話就會(huì)把 boolean 轉(zhuǎn)為 number 再進(jìn)行判斷
6. 判斷其中一方是否為 object 且另一方為 string、number 或者 symbol,是的話就會(huì)把 object 轉(zhuǎn)為原始類(lèi)型再進(jìn)行判斷
其流程圖如下: