Javascript条件订单评估

时间:2011-05-05 01:36:15

标签: javascript

当表达式中的一个条件导致错误时,我可以指望Javascript立即失败吗?

f = {'a':'b'};
if (f.a !== undefined || f.a === 'b') {
  // Is this OK to use, because the second condition will never be evaluated?
}

1 个答案:

答案 0 :(得分:46)

是的,这被称为short circuit evaluation

使用AND逻辑运算符,如果第一个求值为false,那么第二个永远不会被评估,因为条件已经知道已经足够了。

使用OR逻辑运算符,如果第一个运算符是false,它将评估第二个运算符。否则,如果第一个是true,它将不会评估第二个(不需要)。

这也是你看到......

的原因
var a = function(b) {
   b = b || 7;
}