当表达式中的一个条件为假时,我可以指望 Javascript 立即失败吗?
f = {'a':'b'};
if (f.a !== undefined || f.a === 'b') {
// Is this OK to use, because the second condition will never be evaluated?
}
最佳答案
是的,这被称为 short circuit evaluation .
使用 AND
逻辑运算符,如果第一个计算结果为 false
,则永远不会计算第二个,因为条件已经足够知道可以满足。
使用OR
逻辑运算符,如果第一个为false
,它将计算第二个。否则,如果第一个为 true
,则不会评估第二个(不需要)。
这也是为什么你看到...
var a = function(b) {
b = b || 7;
}
关于Javascript 条件顺序评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5891754/