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语句之前: