2016-08-05 9 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;