1

可能重复:
Javascript 条件顺序评估

if 语句中的多个条件如何产生?

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

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

4

2 回答 2

5

不,它使用短路评估,所以如果评估 LHS 意味着它不需要评估 RHS,它就不会。

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

foo = foo || "bar";

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

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

于 2012-11-26T01:37:03.267 回答
0

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

于 2012-11-26T01:37:29.893 回答