Devinora
@Devinora
Front-end web development

Как работают Логические операторы в этом случаи?

Выполнение короткого замыкания

Так как логические операторы выполняются слева направо, они тестируются на возможные "короткие замыкание", при использовании следующих прав:

false && (anything) короткое замыкание дающее false.
true || (anything) короткое замыкание дающее true.
Правила логики гарантируют, что эти выражения всегда корректны. Заметьте, что любая часть выражений ниже не выполнится, так как любые побочные эффекты не сделают эффекта. Также заметьте, что любая часть выражения ниже - одиночное логическое выражение (отмечено скобками).

Например, следующие 2 функции делают одно и то же:
function shortCircuitEvaluation() {
  doSomething() || doSomethingElse()
}

function equivalentEvaluation() {
  var flag = doSomething();
  if (!flag) {
    doSomethingElse();
  }
}


https://developer.mozilla.org/ru/docs/Web/JavaScri...

Тут описан пример, и говорить, что Например, следующие 2 функции делают одно и то же:

Можно ли более детальней узнать как происходит преобразование?
  • Вопрос задан
  • 174 просмотра
Пригласить эксперта
Ответы на вопрос 2
@GreatRash
doSomething() и doSomethingElse() возвращают булевы значения, соответственно в конечном итоге выражение сводится к Bool || Bool.
Ответ написан
Комментировать
lazalu68
@lazalu68
Salmon
Если вас прям детально всё интересует, обратитесь к спецификации

Если хотите сразу прыгнуть на тему конвертации, то ищите по фразе ToPrimitive
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы