重複の可能性:
Javascript 条件付き順序評価
if ステートメントの複数の条件はどのように機能しますか?
if( bacon && bacon == "crispy") {
self.eat(bacon);
}
bacon
存在しない場合でも、「bacon
クリスピー」かどうかを確認しようとしますか?
重複の可能性:
Javascript 条件付き順序評価
if ステートメントの複数の条件はどのように機能しますか?
if( bacon && bacon == "crispy") {
self.eat(bacon);
}
bacon
存在しない場合でも、「bacon
クリスピー」かどうかを確認しようとしますか?
いいえ、短絡評価を使用するため、LHS を評価することが RHS を評価する必要がないことを意味する場合は、そうしません。
これは JavaScript で非常に頻繁に悪用されます...
foo = foo || "bar";
foo
がtrue (LHS) の場合、条件は既知であり、true
そのfoo
値が割り当てられます (これらの条件は最後に評価された式を返します)。
ただし、foo
がfalsyの場合、RHS 式を評価し、その結果を に代入しfoo
ます。
&& 演算子は JavaScript の短絡演算子で、最初の条件が false の場合に残りのステートメントが評価されないようにします。