moe*_*ley 6 javascript jslint switch-statement
JSLint抱怨说这(true)是一个weird condition.如果我没有在反向切换声明中使用它,这是可以理解的.那么JSLint是错误的还是我不应该使用反向切换语句?
感谢您的帮助/启发.
switch (true) {
case (menuLinksLength < 4):
numberOfColumns = 1;
break;
case (menuLinksLength > 3 && menuLinksLength < 7):
numberOfColumns = 2;
break;
case (menuLinksLength > 6 && menuLinksLength < 10):
numberOfColumns = 3;
break;
case (menuLinksLength > 9):
numberOfColumns = 4;
break;
default:
numberOfColumns = 0;
}
Run Code Online (Sandbox Code Playgroud)
就个人而言,我不希望switch在代码库中看到逆转.与平原if/elseif块相比,它不会给你任何东西,它的异国情调可能会导致混乱.
这也是JSLint抱怨的内容:
你正在做一些非正统的事情.它有充分的理由吗?如果没有,坚持基础可能会更好.
ECMA-262 标准的第三版(受 Firefox 1.0+、Google Chrome 1.0+、MSIE 5.5+ 等支持)定义:
switch (expression) {
case label1:
statements1
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
statements1如果(expression)匹配则执行label1。
这意味着你的switch陈述完全没问题。
我在 Firefox、Chrome 和 IE 上尝试过。没有人抱怨...
编辑:
现在是猜测部分:
JSLint 是一个代码分析工具。当它看到 时switch (true),它假设您不知道自己在做什么。奇怪并不意味着一定是错误的...
| 归档时间: |
|
| 查看次数: |
751 次 |
| 最近记录: |