そうすることの利点はありますか?それは読みやすさの懸念につながる可能性がありますか?
3 に答える
コーディングの絶対者が多すぎるとは思いませんが、Javascriptでラベルを使用することはめったにありません。
実際、私はそれらをまったく言語で使用したことがないと思います。
与えられた強力な構造のおかげで、ラベルが必要なほとんどすべてのことをfor ...
for ... in
while
do ... while
if ... else
早期に実行return
できるため、よりクリーンな構造で書くことができます。
ラベルは通常、JavaScriptで外部ループから抜け出すために使用されます。例えば:
while (true) {
while (true) {
if (someCondition) break;
}
}
このプログラムではbreak
、内側のループからのみ実行します。外側のループは無限にループします。ただし、内側のループではなく、外側のループから抜けたい場合もあります。この目的でラベルを使用します。
loop: while (true) {
while (true) {
if (someCondition) break loop;
}
}
ネストされたループやスイッチケースがたくさんある場合は、実際にはプログラム自体に影響を与えない場合でも、ラベルを使用するとコードの可読性が向上します。
この質問のコードを例にとってみましょう:https ://codereview.stackexchange.com/q/14532/15640
ここでは、forループにスイッチケースがあります。これを使用している場合でも、ループにラベルを付けるforループから抜け出す必要はなく、スイッチケースが役立つ場合があります。他の人にとっては、それはただの気晴らしです。
結局、それはあなたのプログラミングスタイルに要約されます。初心者は通常、すべてにラベルを付けるのが好きです。より多くの経験を積んだプログラマーは、コメントやラベルが多すぎると煩わしいと感じます。
Steve Yeggeは、実際にこれに関するブログ投稿全体を書いています。あなたはそれが非常に面白いと思うかもしれません:http ://steve-yegge.blogspot.in/2008/02/portrait-of-n00b.html
コメントなしでコーディングしてみてください:http://www.codinghorror.com/blog/2008/07/coding-without-comments.html
ネストされたループが必要で、外側のループの下部にある値を単純にチェックして続行するかどうかを判断するのではなく、内側から外側のループを名前で分割する必要がある時期を考えるのは難しいです。か否か...
通常、その構造は、break third_from_outer_loop;
またはよりもわかりやすくなりますcontinue loop_that_is_two_loops_higher
。
最も外側のループを最も内側から切り離す準備ができている場合は、早めに戻ってみませんか?