我在javascript中遇到问题,想知道是否可以做这样的事情或者是错误:
for (var i = 1; i <= nUnits.length; i++)
{
switch (true)
{
case i % fDivisor === 0 && i % bDivisor === 0: //Note the modulus
nUnits[i].push("FB");
alert("FB");
break;
case i % fDivisor === 0:
nUnits[i].push("F");
alert("F");
break;
case i % bDivisor === 0:
nUnits[i].push("B");
alert("B");
break;
default:
nUnits[i].push(i);
alert(i);
break;
}
}
我一直在网上查看我是否可以像这样对案例进行计算,但我看到的只是转换中的表达式。
我也试过这样的变种:
case (((i % fDivisor) === 0) && ((i % bDivisor) === 0)): //Note the modulus
nUnits[i].push("FB");
alert("FB");
break;
case ((i % fDivisor) === 0):
nUnits[i].push("F");
alert("F");
break;
我想知道这是否真的是有效的语法。
我理解,如果陈述有时可能更好,但这不是问题。提前感谢您的帮助。
答案 0 :(得分:0)
我看到人们投票决定关闭这个有效的问题所以我会回答它,因为我使用SO作为我自己的参考。
另一个人发布了一个答案,说明案例中的语法不正确且不允许。
在该答案的评论中,海报提供了一个指向JSFiddle的链接,证明了这种语法是正确的。它可能不太好,但它是允许的。然后发布答案的人删除了它。同时删除评论和链接。我希望提供链接的人会在问题结束前将其作为答案发布,我会删除并接受他的。
这回答了我的问题。这是:
在这种情况下(不是开关)允许这样的“计算”(非逻辑运算)。 (注意问题不是辩论它是否好)。但它的语法是否正确,是否允许?
无论你喜不喜欢(SO不是辩论论坛)......确实允许。