次のコード ブロックが正常に実行されました。forループを使用する以外に、このラベル付けをどのように使用するのだろうかと思っていましたか?
<script>
js:
{
alert("x");
}
</script>
次のコード ブロックが正常に実行されました。forループを使用する以外に、このラベル付けをどのように使用するのだろうかと思っていましたか?
<script>
js:
{
alert("x");
}
</script>
:
とにかく私が知っているjavascriptでの用途がいくつかあります。
ternary operator
if
- 1 行でステートメントを評価するために使用されます。
var x = "yes" == "yes" ? true : false;
上記のコード行は、機能的に次のものと同等です。
if("yes" == "yes"){
var x = true;
}
else{
var x = false;
}
コード ブロックの開始をマークする - コード ブロックに移動する
begin:
for(int i = 0; i < 10; i++){
break begin;
}
オブジェクトリテラル - リマインダーをくれた @Ian に感謝
var someObject= {
item: 'some value',
anotherItem: 2 // Can put any type of variable here
};
このタイプの表記は、JSONを使用するときによく見られます。
JavaScript ではLabels [MDN]と呼ばれます。
myPrettyLabel:
{
alert('testMe');
}
break または continue ステートメントを使用して参照できる識別子を持つステートメントを提供します。
たとえば、ラベルを使用してループを識別し、break または continue ステートメントを使用して、プログラムがループを中断するか実行を継続するかを示すことができます。
goto
一般番組と同じ
ラベルは JavaScript であまり一般的に使用されないため、ラベルの使用は避けてください。ラベルはプログラムを読みにくく理解しにくくするためです。可能な限りラベルの使用を避け、場合によっては関数を呼び出すか、エラーをスローすることをお勧めします。
それはラベル付けされたステートメントです。ラベル付きステートメントをbreak
andcontinue
ステートメントの形式で使用できます。
outer: for (var i = 0; i < 1000; ++i) {
for (var j = 0; j < 1000; j++) {
if (somethingBad())
break outer;
}
}
内側のネストされたループから外側の反復レベルに到達できることは (めったにありませんが) 役に立ちます。何千行ものコードで使用したことはないと思います。元の質問に投稿されたコード例では、ラベルに明らかな目的はありません。
これは、ラベルをマークする方法です。これは、古い「goto」を実装する機能を提供する非常に悪い習慣です。これは、順次実行のコードへの単純なジャンプです。
コロンは、ラベルを追加するために使用されます。labelの MDN ドキュメントで説明されているように:
break または continue ステートメントを使用して参照できる識別子を持つステートメントを提供します。
たとえば、ラベルを使用してループを識別し、break または continue ステートメントを使用して、プログラムがループを中断するか実行を継続するかを示すことができます。
MDN にはコード例も含まれています。
var i, j;
loop1:
for (i = 0; i < 3; i++) { //The first for statement is labeled "loop1"
loop2:
for (j = 0; j < 3; j++) { //The second for statement is labeled "loop2"
if (i == 1 && j == 1) {
continue loop1;
} else {
console.log("i = " + i + ", j = " + j);
}
}
}
// Output is:
// "i = 0, j = 0"
// "i = 0, j = 1"
// "i = 0, j = 2"
// "i = 1, j = 0"
// "i = 2, j = 0"
// "i = 2, j = 1"
// "i = 2, j = 2"
// Notice how it skips both "i = 1, j = 1" and "i = 1, j = 2"
また、記事で述べられているように、この種のロジックは一般的にコードを理解しにくくするため、ラベルを使用する必要がないように、コードを再構築して他のタイプのフロー制御 (関数など) を使用することをお勧めします。
この構文はオブジェクト構文にも似ているため、混乱を招く可能性があることに注意してください。次に例を示します。
{ js: {1}, ... }