比较运算符常见错误
在常规的比较中,数据类型是被忽略的,以下 if 条件语句返回 true:
var x = 5;
var y = "5";
if (x == y)
var y = "5";
if (x == y)
在严格的比较运算中,=== 为恒等计算符,同时检查表达式的值与类型,以下 if 条件语句返回 false:
var x = 5;
var y = "5";
if (x === y)
var y = "5";
if (x === y)
这种错误经常会在 switch 语句中出现,switch 语句会使用恒等计算符(===)进行比较:
以下实例会执行 alert 弹窗:
var x = 5;
switch(x) {
case 5:
alert("Hello");
break;
}
switch(x) {
case 5:
alert("Hello");
break;
}
以下实例由于类型不一致不会执行 alert 弹窗:
var x = 5;
switch(x) {
case "5":
alert("Hello");
break;
}
switch(x) {
case "5":
alert("Hello");
break;
}