javascript开关/大小写:是否比较了类型?
可能重复:javascript开关/大小写:是否比较了类型?,javascript,Javascript,可能重复: javascript中的switch/case语句是比较类型还是只比较值 换句话说,当我有以下代码时: switch (variable) { case "0": [...] break; case "1": [...] break; default: [...] break; } 相当于 if ( variable == "0" ) { [...] } else if ( variable == "1" ) { [...] } else
javascript中的switch/case语句是比较类型还是只比较值 换句话说,当我有以下代码时:
switch (variable)
{
case "0": [...] break;
case "1": [...] break;
default: [...] break;
}
相当于
if ( variable == "0" )
{
[...]
}
else if ( variable == "1" )
{
[...]
}
else
{
[...]
}
或
编辑:是否有一种方法可以强制同时比较值和类型?它还检查类型 例如:
var x = false;
switch (x) {
case "":
alert('x'); /// Not happening
break;
case false:
alert('y'); // happen
break;
}
正如规范所说:
如果输入等于由===运算符定义的子句选择器,则
是的,类型是比较的 如果输入等于由===运算符定义的子句选择器, 然后设置为true
,第95页。您可以轻松地测试它……是的,输入JSFIDLE比输入问题:-)@amnotiam所花费的时间要少。你怎么找到他们。。。?你以前看过吗?@gdoron:没有,刚刚看过。这是第一个结果。:)@amnotiam,但这样你就没有名声了<代码>:)
var x = false;
switch (x) {
case "":
alert('x'); /// Not happening
break;
case false:
alert('y'); // happen
break;
}