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