Can I count on Javascript failing immediately when one condition in an expression results to false?
f = {'a':'b'};
if (f.a !== undefined || f.a === 'b') {
// Is this OK to use, because the second condition will never be evaluated?
}
Yes, this is known as short circuit evaluation .
With an AND
logical operator, if the first evaluates to false
, then the second is never evaluated, because the condition knows enough already to be met.
With the OR
logical operator, if the first one is false
, it will evaluate the second one. Otherwise if the first is true
it won't evaluate the second (no need to).
This is also why you see...
var a = function(b) {
b = b || 7;
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.