Краткий ответ: Быстрее явный возврат для коротких циклов (1000 итераций).Но если ваш цикл повторяется 100000 раз, то быстрее не возвращаться из функций.
Я запустил стендовые тесты Javascript, используя JSBEN.CH
var sum = 0;
for(var i=0; i<1000; i++) {
sum += is_even(i) ? 1: 0;
}
console.log(sum);
.здесь определена функция is_even()
:
без возврата
function is_even(n) {
if(n%2==0) { return true; }
// no return if n is odd.
// default return is undefined
}
с возвратом;
function is_even(n) {
if(n%2==0) { return true; }
return;
}
Тест сообщил (с возвратом), что блок будет быстрее.
![Comparison result](https://i.stack.imgur.com/3lMWV.png)
Затем я увеличил количество итераций в цикле for и получил обратный результат.
var sum = 0;
for(var i=0; i<100000; i++) {
sum += is_even(i) ? 1: 0;
}
console.log(sum);
В этомслучай, инструмент для ремонта сообщил, что функция без возврата;быстрее.