私が見たすべてのif...else if
の例には、最後のelse
句が含まれています。
if (condition1) {
doA();
} else if (condition2) {
doB();
} else if (condition3) {
doC();
} else {
noConditionsMet();
}
alwaysDoThis();
これは基本的に、ネストされたif...else
ステートメントの構文糖衣であることを理解しています。
if (condition1) {
doA();
} else {
if (condition2) {
doB();
} else {
if (condition3) {
doC();
} else {
noConditionsMet();
}
}
}
alwaysDoThis();
最後のelse
句を省くif...else if
の例を見たことがありません。しかし、単純なif
ステートメント(else
節なし)が有効であり、上記の同等の「ネストされたステートメント」を見ると、これは大丈夫だと私は言っています:
if (condition1) {
doA();
} else if (condition2) {
doB();
} else if (condition3) {
doC();
}
alwaysDoThis();
誰かが私に、それが有効であるかどうかを明示的に示すリソースまたは例を教えてもらえますか?
また、別のレベルで、それがis有効である場合、推奨されるか、または「悪い習慣」と見なされますか?
末尾のelse
は必須ではありません。必要かどうかは、何を達成したいかによって異なります。
末尾のelse
句は、指定された条件のいずれも真でない場合に実行されます。条件が 集合的に網羅 であることが保証されている場合、else
句は完全に不要です。ただし、「不可能」な条件をキャッチするアサーションが含まれている可能性があります。あなたの場合、else
節が必要かどうかは、condition1
、condition2
、およびcondition3
は本当です。
anyelse
ステートメントでは、if
を省略できます。最後のif
には特別なものはありませんif
/else if
鎖。これは、JavaScriptの文法で文書化されています。 in 仕様 。
needelse
句を使用しないでください。 (必要でないものの例を提供するのは難しいので、私はそれをそのままにしておきます。)
編集コメントとして、言語構文表記の角括弧通常は何かがオプションであることを示します。
100%有効です。いいえ、悪い習慣ではありません。必要なければ、書きません。
例として次をご覧ください。
function doStuff(data) {
if (data.something) {
// go format the data in some way
}
else if (data.somethingElse) {
// go format the data in some other way
}
// must be formatted correctly, don't do anything else
...
}
Elseブロックは不要です。ifelseステートメントではなく、ifステートメントです。 else、elseifを拡張機能として検討してください。
これがサイトポイントスレッドへのリンクです。 クリックしてください 。また、stackoverflowの同様のスレッド: ここをクリック