Javascript のラベルは識別子です。ラベルは、変数と同じ名前を持つことができます (変数でも型でもありません) 独立した構文要素です。その機能は、「ラベル付きステートメント」
ラベル ステートメント
を識別することです。 ラベルはステートメントまたはステートメント ブロックの前に宣言して、ステートメントまたはステートメント ブロックに「ラベルを付ける」ことができます。
label1:
myFun1();
label2:{
var i = 1, j = 2;
var k = i j;
}
注: label ( label) の後に複数の連続したステートメントが続く場合、最初のステートメントのみに
というラベルが付けられます。GOTO は Javascript の予約キーワードですが、その中に GOTO ステートメントはありません。 GOTO に加えて、JavaScript にはプログラムの流れを変更できるキーワードが 3 つあります。それは、break、 continue、return です。このうち、break と continue はラベルと併用できます。
break とタグ
break は、通常、for ループ、while ループ、switch ステートメントから抜け出すために使用されます。デフォルトでは、break 句は最も内側のループ ステートメントまたは switch ステートメント全体に作用するため、break ステートメントのスコープを具体的に指定する必要はありません。ただし、break 句には、その範囲を示す拡張構文があります。
break my_label;
ループから抜け出して分岐を切り替えることに加えて、ラベル付きステートメントから抜け出すこともできます
var str = Prompt('文字列を入力してください','1234567890');
my_label : {
if (str && str.length Break my_label:
}
str = str.substr(str.length-10);
}
alert(str);
continue と label
continue は for ループ ステートメントでのみ意味があるため、for、for.. でのみ機能します。 .in、while、do...while はこれらのステートメント内にあります。デフォルトでは、現在のループを停止し、次のループ反復の先頭にジャンプします。
continue の後にラベル (label) を続けることもできます。これは、ループ本体内で終了し、実行を開始するラベル (label) 命令に継続することを示します。また、このラベルで示されるステートメントは必ず実行する必要があります。この continue Loop ステートメントを含めます。
例:
loop:
for (var j = 0; j {
if (j == 2) continue ループ;
document.write("loop: " j );
}
上記の例の continue ラベルは、ラベルの特別な機能を反映していません。実際には、ラベルを削除しても効果は同じです。別の例を見てみましょう
document.write( "ループに入ります!
");
outerloop: // これは (var i = 0; i {
のラベル名です
document.write ("アウターループ: " i "
");
for (var j = 0; j {
if (j == 3) {
アウターループを続行;
}
document.write("インナーループ: " j "
");
}
}
document.write("終了中ループ!
");
Continue ラベルを使用して外側のループに直接ジャンプすることがポイントです。