Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript conditional order evaluation

Tags:

javascript

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? } 
like image 395
atp Avatar asked May 05 '11 01:05

atp


People also ask

Does JavaScript evaluate entire IF statement?

When using the AND operator, all conditions must evaluate to true for the code to run. By default, JavaScript will evaluate if statement conditions from left to right.

How do you write a conditional statement in JavaScript?

In JavaScript we have the following conditional statements: Use if to specify a block of code to be executed, if a specified condition is true. Use else to specify a block of code to be executed, if the same condition is false. Use else if to specify a new condition to test, if the first condition is false.


1 Answers

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; } 
like image 198
alex Avatar answered Oct 02 '22 17:10

alex