在javascript中正确使用continue

Dve*_*Dve 4 javascript loops

我一直相信你继续使用如下:

var i;

for (i = 0;  i < 10; i++) {
  if(i%2===0) {
    continue;
  }
}   
Run Code Online (Sandbox Code Playgroud)

要么

var i, myloop;

myloop: for (i = 0;  i < 10; i++) {
  if(i%2===0) {
    continue myloop;
  }
}
Run Code Online (Sandbox Code Playgroud)

但是当我通过JSLint运行这两段代码时,我得到错误:


Problem at line 5 character 5: Unexpected 'continue'.
     continue;

我究竟做错了什么?什么是正确的用法?

sdl*_*rhc 5

我猜JSLint只是讨厌continue:

几乎总是有更好的编写语句的方法,可以更明确地定义您尝试做的事情,而无需继续使用.JSLint是关于好的部分,而不是关于可接受的部分.它会强制您使用比定义的标准更高的标准.

道格拉斯在他的书中说得最好:

"continue语句跳转到循环的顶部.我从来没有看到过一段没有通过重构来删除continue语句而得到改进的代码."

  • 我一直都不明白继续这么难读.第二个你已经确定你不再需要在给定的迭代上做任何其他事情,没有理由不使用它. (9认同)
  • 那太愚蠢了.'continue'可以很容易地在循环中"提前退出".我想内部循环可以放在外部函数中,以保持可读性,但这并不总是很方便. (3认同)