Вложенная производительность

0

Учитывая эти две функции в JavaScript:

function (){
  return _.includes(someLongArray, value) && someSimpleValue;
}

В.С.

function (){
  return someSimpleValue && _.includes(someLongArray, value);
}

Какой из них будет иметь лучшую производительность? Когда someSimpleValue является ложным, будет ли он автоматически возвращать возврат? Или он будет проверять, является ли второе истинным или ложным (бесполезная причина, когда && имеет некоторые из них false, это уже не может быть правдой)

3 ответа

5
Лучший ответ

Второй более эффективен, так как при использовании оператора "&&" короткое замыкание, если первое условие оценивается как false.

Дальнейшее чтение/дублирование:

У JavaScript есть оценка "короткого замыкания"?

2

Вторая быстрее

При использовании оператора && javascript проверяет левую сторону, если он проверяет правильную сторону - если он ложный, он не проверяет правильную сторону.

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

false && (что-либо) - это короткое замыкание, которое вычисляется как false. true || (что-либо), короткое замыкание оценивается как true.

полная статья

  • 1
    Я думаю, что вы имеете в виду наоборот. Если левый является ложным, он никогда не оценивает правое.
0

Второй из них будет быстрее из-за "короткого замыкания", и как только первое условие будет ложным, оно "выйдет",

Ещё вопросы

Сообщество Overcoder
Наверх
Меню