「「if-else」ブロックを使用するよりも三項演算子が悪いのはいつですか?」
私は、それはデバッグ時である可能性があると思います(たとえば、三項演算子はデバッグには適していません)
そのような美しさは役に立ちますか?単純な if-else ブロックを使用する方が適している状況がいくつかあるのではないでしょうか?
ありがとうございました
「「if-else」ブロックを使用するよりも三項演算子が悪いのはいつですか?」
私は、それはデバッグ時である可能性があると思います(たとえば、三項演算子はデバッグには適していません)
そのような美しさは役に立ちますか?単純な if-else ブロックを使用する方が適している状況がいくつかあるのではないでしょうか?
ありがとうございました
三項演算子は、2 つの単純な式のうちの 1 つを条件付きで評価し、その結果に対して単純なことを行いたい場合 (たとえば、変数に代入したり、返したりする場合) に便利です。次のようなものは、三項演算子の許容される使用法です。
var status = a.isActive() ? a.status : defaultStatus;
コードがこれよりも複雑な場合は、通常は if ステートメントを使用する方が明確です。そうしないと、1 行のコードで多くのことを実行しようとするリスクがあります。デバッグの容易さだけではありません。複雑な式を含む長い行は理解しにくい場合があります。
多くの言語では、式の中で (式ではなく) ステートメントを使用することは許可されていません? :
。一連のステートメントを実行する必要がある場合は、if
ステートメントを使用する以外に選択肢はありません。
三項式は、IMO という単一のステートメント内での非常に単純な分岐に使用する必要があります。わかりやすくするために 3 項を複数行で書きたくなる時はいつでも、別の形式の分岐を使用するときです。また、個人的には、複合三項演算子は非常に読みにくく、悪い形式だと考えています。
そしてIDEを忘れてください。コードを理解するために、デバッガーのすべての小さなことを完全に中断できる必要がある場合は、はるかに大きな構造上の問題があります。
JavaScript では、関数の引数に基づいて設定を行うときに、関数の先頭にある最初の var 宣言ブロックでのみ 3 項を使用する傾向があります。それらは主に、配列の長さ、オプションのパラメーターの存在、またはパラメーターのタイプなどの非常に単純なことを評価します。その最初の準備ポイントを超えると、通常、ロジックはより複雑になるか、複数の単純なチェックが必要になるため、ブロックベースのスイッチング構造または何らかの形式のマッピングで説明する方が理にかなっています。
ただし、最初に IDE を使用しない場合の読みやすさについて考えてください。IDE を持っていないかのようにコードを適切に構造化することは、常にコードをよりよく理解するのに役立ちます、IMO。