<分区>
Possible Duplicate:
Javascript conditional order evaluation
if 语句中的多个条件是如何产生的?
if( bacon && bacon == "crispy") {
self.eat(bacon);
}
如果 bacon
不存在,它是否仍会尝试检查 bacon
是否“脆”?
<分区>
Possible Duplicate:
Javascript conditional order evaluation
if 语句中的多个条件是如何产生的?
if( bacon && bacon == "crispy") {
self.eat(bacon);
}
如果 bacon
不存在,它是否仍会尝试检查 bacon
是否“脆”?
最佳答案
不,它使用 short-circuit evaluation ,所以如果评估 LHS 意味着它不需要评估 RHS,它就不会。
这在 JavaScript 中被频繁利用...
foo = foo || "bar";
如果 foo
是 truthy(LHS),则条件已知为 true
和 foo
将被分配它的值(这些条件返回最后计算的表达式)。
但是,如果 foo
为 falsy,它将计算 RHS 表达式,然后将该结果分配给 foo
。
关于javascript - if 语句中的多个条件 : Need for validating undefined before checking other conditions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13557551/