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;
}