我的问题很简单,如果我声明一个带有一系列 OR 子句的 IF 语句,JavaScript 会读取所有 OR 还是停在第一个满足的 OR 处?
提前致谢。
我的问题很简单,如果我声明一个带有一系列 OR 子句的 IF 语句,JavaScript 会读取所有 OR 还是停在第一个满足的 OR 处?
提前致谢。
停在第一个。这叫短路
http://en.wikipedia.org/wiki/Short-circuit_evaluation https://developer.mozilla.org/en/JavaScript/Reference/Operators/Logical_Operators
它应该只处理返回 true 的第一个 OR:
if (a || b || c) {
}
如果 a 为假,b 为真,c 为真,它将处理到 b。
function foo() {
return true;
}
function bar() {
alert("bar");
}
foo() || bar(); // true - no alert
bar() || foo(); // true - alert of "bar"
如果满足第一个条件,or
则不评估其他条件