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