使用if语句或函数作为switch案例

时间:2014-01-15 00:39:18

标签: javascript

是否可以在switch case中执行if语句?或使用$.isNumeric功能?

我已经在jsfiddle尝试了几个,它似乎没有用。

var someVar  = 1;
switch(someVar){
    case someVar < 0:
        console.log('asdasd');
        break;        
}

这似乎不起作用,是另一种方式吗?

http://jsfiddle.net/RLxpU/

3 个答案:

答案 0 :(得分:3)

不,您不能将条件用作案例,因为它的计算结果为布尔值,与开关不匹配,请尝试查看

var someVar  = 1;
switch(false){
    case someVar < 0: // false, someVar is not less than zero
        console.log('asdasd');
        break;        
}

switch(true){
    case someVar > 0: // now it's true, someVar is more than zero
        console.log('asdasd');
        break;        
}

FIDDLE

答案 1 :(得分:2)

Switch肯定能够评估表达式和条件:你只需要将switch正确的东西传递给它来评估:

switch ( true ) {

    case someVar < 0:
        console.log('asdasd');
        break;

}

自表达式someVar < 0求值为true ==值开关正在寻找时,它将起作用。

答案 2 :(得分:0)

除了其他人展示的内容外,您还可以传递表达式。

var someVar  = -1;
switch(someVar < 0){
  case true:
    console.log('true');
    break;    
  case false:
    console.log('false');
    break; 
  }