比較運算符常見錯誤
在常規的比較中,數據類型是被忽略的,以下 if 條件語句返回 true:
var x = 5;var y = "5";
if (x == y)
在嚴格的比較運算中,=== 為恒等計算符,同時檢查表達式的值與類型,以下 if 條件語句返回 false:
var x = 5;var y = "5";
if (x === y)
這種錯誤經常會在 switch 語句中出現,switch 語句會使用恒等計算符(===)進行比較:
以下實例會執行 alert 彈窗:
var x = 5;switch(x) {
case 5:
alert("Hello");
break;
}
以下實例由於類型不一致不會執行 alert 彈窗:
var x = 5;switch(x) {
case "5":
alert("Hello");
break;
}
Tags:
文章來源: