Fork me on GitHub

JSLint Error Explanations

JSLint will hurt your feelings. It's time to make them better!


'{a}' is not a label

什么时候会产生这个错误?

JSLint在遇到一个break或者continue语句指向一个并不存在的标签时,会抛出"'{a}' is not a label"的错误。在下面这个例子中,我们尝试着跳出一个for循环到example标签:

为什么会产生这个错误?

这个错误是为了强调一个JavaScript语法错误。在循环语句中引用一个并不存在标示符是不合法的。这在ECMAScript5规范中是这样被陈述的(section §12.7 and section §12.8):

A program is considered syntactically incorrect if...

  • ...
  • The program contains a break statement with the optional Identifier, where Identifier does not appear in the label set of an enclosing ... Statement.

在上述引用片段中,for语句并没有被明确的标记,因此也没有任何标记被赋予example标示。当解释器遇到break语句的时候,就会抛出一个语法错误。这可以通过移除break语句中的标示符来解决问题:

或者将正确的标示符添加到for语句之前:


comments powered by Disqus