Javascript:使用 "label" 时出现奇怪的语法错误

Javascript: weird syntax error when using "label"

这段代码

abc:
var i=0;
for (; i < 10; ++i)
    if (i == 8) break abc;

有运行时异常,说

SyntaxError: Undefined label 'abc'

如果我删除

var i=0;

那就OK了

这对我来说很奇怪。 javascript 是否需要任何标签,如果被 "break"/"continue" 使用,定义仅适用于紧随其后的代码块,否则无法访问? 谢谢。

来自MDN

The break statement needs to be nested within the referenced label.

所以,是的。

您的标签需要直接在循环之前:

var i=0;
abc:
for (; i < 10; ++i)
    if (i == 8) break abc;