『Javascript:The Good Parts by Douglas Crockford』の中で、著者が継続ステートメントについて言わなければならないのはこれだけです。
ステートメントはループの
continue
先頭にジャンプします。continue
ステートメントを削除するためにリファクタリングしても改善されなかったコードを見たことがありません。
これは本当に私を混乱させます。CrockfordがJavaScriptに関して非常に意見の分かれる見解を持っていることは知っていますが、これは私にはまったく間違っているように聞こえます。
まず第一にcontinue
、ループの先頭にジャンプするだけではありません。デフォルトでは、次の反復にも進みます。それで、クロックフォードの声明は完全に誤った情報ではありませんか?
さらに重要なことに、私はなぜcontinue
悪いとさえ見なされるのかを完全には理解していません。この投稿は、一般的な仮定と思われるものを提供します:
なぜループ内で続行するのは悪い考えですか?
場合によってはコードが読みにくくなる可能性があることは理解していますcontinue
が、コードが読みやすくなる可能性も同じだと思います。例えば:
var someArray=['blah',5,'stuff',7];
for(var i=0;i<someArray.length;i++){
if(typeof someArray[i]==='number'){
for(var j=0;j<someArray[i];j++){
console.log(j);
}
}
}
これは次のようにリファクタリングできます。
var someArray=['blah',5,'stuff',7];
for(var i=0;i<someArray.length;i++){
if(typeof someArray[i]!=='number'){
continue;
}
for(var j=0;j<someArray[i];j++){
console.log(j);
}
}
continue
この特定の例では特に有益ではありませんが、ネストの深さが減少するという事実を示しています。より複雑なコードでは、これにより読みやすさが向上する可能性があります。
Crockfordは、なぜ使用すべきでないのかについての説明を提供していcontinue
ません。それで、私が見逃しているこの意見の背後にあるより深い意味がありますか?