switch (true)会Weird condition在jsLint中给你一个错误,所以如果这是一个问题,让我们更有创意,而且,我认为,增加可读性。
因此,我们不能评估如果每个case为true或false; 我们正在比较它case的价值是否等于我们的switch期限。因此,如果条件为真,if我们可以通过在我们的case语句中添加简写并返回原始切换项来利用它。
我还包括一个真实世界的例子,你想要有两个“默认值” - 如果你的术语在正面方向上超出你的“重要”范围,那么就是一个,如果你处于负面,则另一个方向。
关键词: case (x > 0 ? x : null):
“如果我的任期,x大于零,则返回x以便x === x我接受案例分支。”/*global document*//*jslint evil:true*/var x = 10;switch (x) {
case (x > 0 ? x : null):
document.write('ha ha ha! I fooled switch AND jsLint! Muhahahahaha!');
break;
case 0:
document.write('zero is nothing.');
break;
case -1:
document.write('low');
break;
case -2:
document.write('lower');
break;
case -3:
document.write('lowest I care about');
break;
default: // anything lower than -3.
document.write('TOO LOW!!!! (unless you cheated and didn\'t use an int)');}document.write('
done.');