Подтвердить что ты не робот

Оценка условного заказа Javascript

Могу ли я рассчитывать на то, что Javascript не сработает сразу, когда одно условие выражения выражается в false?

f = {'a':'b'};
if (f.a !== undefined || f.a === 'b') {
  // Is this OK to use, because the second condition will never be evaluated?
}
4b9b3361

Ответ 1

Да, это называется оценка короткого замыкания.

При использовании логического оператора AND, если первый оценивает значение false, то второй никогда не оценивается, потому что условие уже достаточно хорошо известно для выполнения.

С логическим оператором OR, если первый - false, он будет оценивать второй. В противном случае, если первый true, он не будет оценивать второй (не нужно).

Вот почему вы видите...

var a = function(b) {
   b = b || 7;
}