📄 Expressions and Operators
1. What is the difference between ==
and ===
?
兩者都是比較運算符號,==
是比較兩個值是否相等,===
是比較兩個值是否相等且型別也相等。因此後者也可以視為嚴格模式。
其中前者受限於 JavaScript 的設計,會自動轉換類型,導致出現很多不直覺的結果,例如:
1 == '1'; // true
1 == [1]; // true
1 == true; // true
0 == ''; // true
0 == '0'; // true
0 == false; // true
這對開發者來說,是很大的心智負擔,因此普遍建議使用 ===
來取代 ==
,避免預期外的錯誤。