No, it uses short-circuit evaluation, so if evaluating the LHS means it doesn't need to evaluate the RHS, it won't.
This is exploited in JavaScript quite frequently...
foo = foo || "bar";
If foo
is truthy (the LHS), then the condition is known to be true
and foo
will be assigned its value (these conditions return the last evaluated expression).
However, if foo
is falsy, it will evaluate the RHS expression, and then assign that result to foo
.