Javascript 为什么这个switch语句失败? 开关(t值){ 例
我知道这是我有“<5”的部分。如何使其具有t.value小于5的情况???开关仅支持相等比较Javascript 为什么这个switch语句失败? 开关(t值){ 例,javascript,Javascript,我知道这是我有“
switch (t.value) {
case < 5:
alert('hi');
break;
}
switch
语句不支持小于或大于比较(或除equals之外的任何内容)。使用:
if(t.值<5){
警报(“hi”);
}
默认值:
如果(t.值<5)
警报(“hi”)打破
也许这是你想要的 一个
if
语句似乎最适合于此目的,但尽管我不建议使用它,但JavaScript将允许您切换任何数据类型(而不仅仅是数字/枚举,如某些语言),这意味着您可以这样做:
if (t.value < 5) {
alert("hi");
}
为什么不能只使用一个普通的if语句呢?实际上,
switch
支持小于或其他布尔结果表达式(即使是函数调用),如果您“欺骗”并打开布尔值。看看我的答案。如果你打开一个布尔值,你可以“作弊”并使用你在If/else If
结构中使用的所有类型的比较表达式。看我的答案。似乎没有任何理由喜欢这个而不是一连串的,如果。。。否则,如果
,尤其是因为您必须记住要中断代码>在每种情况之间。我确实说过我不推荐它。我当然不喜欢。实际上,除了为了学习,我从来没有这样做过。但我并不讨厌它。
switch (t.value) {
case 5:
case 4:
case 3:
case 2:
case 1:
alert('hi');
break;
}
if (t.value < 5) {
alert("hi");
}
switch(true) {
case t.value < 5:
// do something
break;
case t.value >= 112:
// do something
break;
case someOtherVar == 17:
// do something
break;
case x == 7:
case y == "something":
case z == -12:
case a == b * c:
// works with fallthrough
break;
case someFunc():
// even works on a function call (someFunc() should return true/false)
break;
default:
// whatever
break;
}
switch(t.value) {
case 0:
case 1:
case 2:
case 3:
case 4:
// do something
break;
case 5:
// etc
}