2016-08-05 5 views
0

を使用している場合、このコード片をJavascriptを:奇妙な構文エラー "ラベル"

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

は私が

var i=0; 

の行を削除した場合、それはだ

SyntaxError: Undefined label 'abc' 

言って、実行時例外がありますOK。

これは私にとっては奇妙です。 "break"/"continue"で使用されている場合、javascriptにはラベルが必要ですか?定義はすぐ後のコードブロックでのみ使用できます。それ以外の場合はアクセスできません。おかげさまで MDNから

+1

私はラベルがループ上の行にあることが必要であると考えています。ラベルの上に 'var i = 0;'を入れてみてください。 –

答えて

2

break文は、参照ラベル内にネストする必要があります。

だから、そうです。

+0

@Rajesh - はい、OPはそれを気づいて質問で言及しました。 – Quentin

0

あなたのラベルは、ループの前に直接する必要があります:

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