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;
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…