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

时间:2012-11-26 01:35:16

标签: javascript validation if-statement multiple-conditions

  

可能重复:
  Javascript conditional order evaluation

if语句中的多个条件如何平移?

if( bacon && bacon == "crispy") {
   self.eat(bacon);
}

如果bacon不存在,是否仍会尝试检查bacon是否“脆”?

2 个答案:

答案 0 :(得分:5)

不,它使用short-circuit evaluation,因此如果评估LHS意味着它不需要评估RHS,那么它就不会。

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

foo = foo || "bar";

如果foo truthy (LHS),则条件为truefoo将被赋予其值(这些条件返回最后评估的表达式)。

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

答案 1 :(得分:0)

&& operator是JavaScript中的短路运算符,如果第一个条件为假,它将阻止对其余语句进行求值。