简体   繁体   中英

Javascript conditional order evaluation

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM