[0] == true; // false [] == ![]; // true
相等操做符會有一個隱形的轉換,這個隱形的轉化會致使結果很"奇怪"。下面是隱形轉換的基本規則:code
[0] == true; // 最終的對比形式 Number([0]) == Number(true);
[] == ![]; // !的運算級別比 '==' 高,先進行如下轉換 [] == false; // 再轉化爲最終的對比形式 Number([]) == Number(false);
undefined == 0; // false null == 0; //false false == 0; //true true == 1; //true true == 2; //false [] == []; //false