2016-08-05 66 views
0

这一段代码的Javascript:奇怪的语法错误使用 “标签”

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

有运行时异常,说

SyntaxError: Undefined label 'abc' 

的时候如果我删除的

var i=0; 

后再行是好。

这对我来说很奇怪。 javascript是否需要任何标签,如果由“break”/“continue”使用,定义仅适用于其后面的代码块,否则它不可访问? 谢谢。

+1

我相信,标签必须在环上方的线。尝试将'var i = 0;'放在标签上方。 –

回答

2

MDN

break语句需要嵌套引用的标签内。

所以,是的。

+0

@Rajesh - 是的,OP注意到了这个问题并提到了它。 – Quentin

0

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

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