任何表达式都可以成为 switch/case 的参数

switch 和 case 都允许任意表达式,但是他们的类型应当是一致的。

例子2:

let a = "1";

let b = 0;

switch (+a) {

  case b + 1:

    console.log("this runs, because +a is 1, exactly equals b+1");

    break;

  default:

    console.log("this doesn't run");

}

结果:

JavaScript之switch语句2_switch语句

例子3:

let a = 3;

switch (a) {

  case 4:

    console.log('Right!');

    break;

  case 3: // (*) 下面这两个 case 被分在一组

  case 5:

    console.log('Wrong!');

    console.log("Why don't you take a math class?");

    break;

  default:

    console.log('The result is strange. Really.');

}

结果:

JavaScript之switch语句2_switch语句_02