ウェブサイトのソースコードを検索しながら、別の方法でステートメントを書く方法を見つけましたif
(私は思います)。
それ以外の:
if(a)b;
また:
a?b:'';
私は読む:
!a||b;
3番目の方法は最初の2つの方法と同じですか?もしそうなら、なぜ私たちは第三の道を使うのでしょうか?
ウェブサイトのソースコードを検索しながら、別の方法でステートメントを書く方法を見つけましたif
(私は思います)。
それ以外の:
if(a)b;
また:
a?b:'';
私は読む:
!a||b;
3番目の方法は最初の2つの方法と同じですか?もしそうなら、なぜ私たちは第三の道を使うのでしょうか?
3番目の方法は前の方法と同じです。これを使用するための1つの引数は、バイトの節約です。それを使用することに反対する強い議論は、読みやすさです。コードを書く際には読みやすさに重点を置き、最小化機能(Google ClosureCompilerなど)を使用してバイトを節約することをお勧めします。
さらに短くすることもできます。
a && b;
/* !a||b means:
(not a) OR b
which is equivalent to
a AND b
which turns out to be
a && b
*/
ブール式の結果は、すべての部分式を評価せずに評価できる場合があります。がありA||B
、 trueの場合、結果はとにかくtrueになるため、A
を評価する必要はありません。B
この動作は「ショートカットブール評価」と呼ばれ、ほとんどのプログラミング言語でデファクトスタンダードです。オペランドをif (i < A.length && A[i] == ...)
評価せずに式を記述できるため、値が正しくない場合に例外が発生する可能性があります。A[i]
i
この特定のケースで!a||b
は、はいと同じですif(a)b
が、そのようなコードの可読性と保守性は問題です。