JavaScript && оператор по сравнению с вложенным, если операторы: что быстрее?

Теперь, прежде чем Вы все вскакиваете на меня и говорите, что "Вы по соответствующему о производительности", позволила она настоящим стоять, что я спрашиваю это больше из любопытства, чем скорее фанатичная природа. Это сказало...

Мне любопытно, если существует различие в производительности между использованием && ("и") оператором и вложено если операторы. Кроме того, есть ли фактическое различие в обработке? Т.е. && всегда обрабатывает оба оператора, или он остановится первый, если первый перестанет работать? Как это отличалось бы, чем вложенный если операторы?

Примеры, чтобы быть ясным:

A) && ("и") оператор

if(a == b && c == d) { ...perform some code fashizzle... }

по сравнению с B), вложенным, если операторы

if(a == b) {
    if(c == d) { ...perform some code fashizzle... }
}
34
задан arxpoetica 27 June 2010 в 02:46
поделиться

3 ответа

Разница в производительности незначительна. Оператор && не будет проверять правое выражение, если левое выражение оценивает false . Тем не менее, оператор и будет проверять оба в любом случае, возможно, это вызвано вашим недоразумением.

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

30
ответ дан 27 November 2019 в 17:00
поделиться

Подобно вложенному if s, && ленивый.
Выражение a && b будет оценивать только b , если a истинно.

Таким образом, оба корпуса должны быть полностью идентичны как по функциональности, так и по производительности.

3
ответ дан 27 November 2019 в 17:00
поделиться

Если вас беспокоит производительность, убедитесь, что a == b с большей вероятностью потерпит неудачу, чем c == d . Таким образом, оператор if выйдет из строя раньше времени.

13
ответ дан 27 November 2019 в 17:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: