if语句中的多个条件如何平移?
if( bacon && bacon == "crispy") {
self.eat(bacon);
}
如果bacon
不存在,是否仍会尝试检查bacon
是否“脆”?
答案 0 :(得分:5)
不,它使用short-circuit evaluation,因此如果评估LHS意味着它不需要评估RHS,那么它就不会。
这在JavaScript中经常被利用......
foo = foo || "bar";
如果foo
truthy (LHS),则条件为true
,foo
将被赋予其值(这些条件返回最后评估的表达式)。
但是,如果foo
是 falsy ,它将评估RHS表达式,然后将该结果分配给foo
。
答案 1 :(得分:0)
&& operator是JavaScript中的短路运算符,如果第一个条件为假,它将阻止对其余语句进行求值。