javascript - JavaScript switch case 中的运算符

标签 javascript switch-statement

为什么这会返回默认情况:

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 值 truefalse ,如(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/

相关文章:

javascript - 如何确定是否已从 javascript 为 WPF WebBrowser 控件设置了 ObjectForScripting?

android - 如何更改 xml 中的开关输入文本颜色?

java - 我怎样才能让这个 switch 语句使用扫描仪工作?

swift - 检查是否可以从开关中的参数创建枚举

Java语法: switch case as variable?

c# - 单击按钮后回发后如何显示 div?

javascript - Nodejs 全局变量和模块

JavaScript 什么时候发布了一个 key

javascript - 为什么我的 switch 语句运行多个 case?

javascript - 在 jQuery 中,如何以百分比设置元素的位置?