if语句中的多个条件:在检查其他条件之前需要验证undefined

Mat*_*att 1 javascript validation if-statement multiple-conditions

可能重复:
Javascript条件订单评估

if语句中的多个条件如何发布?

if( bacon && bacon == "crispy") {
   self.eat(bacon);
}
Run Code Online (Sandbox Code Playgroud)

如果bacon不存在,它还会尝试检查是否bacon"酥脆"?

ale*_*lex 5

不,它使用短路评估,因此如果评估LHS意味着它不需要评估RHS,它就不会.

这在JavaScript中经常被利用......

foo = foo || "bar";
Run Code Online (Sandbox Code Playgroud)

如果foo真实的(LHS),那么条件已知true并且foo将被赋予其值(这些条件返回最后评估的表达式).

但是,如果foo假的,它将评估RHS表达式,然后将结果分配给foo.