为什么这会返回默认情况:
var score=parseInt(3);
switch(score))
{
case(score<1):
alert('DUFF');
break;
case(score<5):
alert('AWESOME');
break;
default:
alert('NOPE');
break;
}
我对此进行了研究,但没有找到有效的解决方案。
最佳答案
因为score
具有整数值 3
永远不会变成 bool 值 true
或false
,如(score < 1)
是 false
和(score < 5)
是 true
.
switch
语句检查传递的变量(或值)是否等于其中一种情况,即:
switch (score) {
case 1:
// score is 1
break;
case 3:
// score is 3
break;
case true:
// score is true
break;
default:
// neither of above
}
您想通过 switch
实现什么目标声明可以按如下方式完成:
switch (true) {
case (score < 1):
alert('DUFF');
break;
case (score < 5):
alert('AWESOME');
break;
default:
alert('NOPE');
}
关于javascript - JavaScript switch case 中的运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24146585/