Я не совсем уверен в этом, но вот мое предположение:
Для следующего кода:
for (var i = 0; i < arr.length; ++i) {;
}
Во время выполнения после каждого цикла вычисляется длина arr.lengthпроходить.Это может быть тривиальной операцией, когда она стоит одна, но может иметь влияние, когда речь идет о множественных / огромных массивах.Можете ли вы попробовать следующее:
var numItems = arr.length;
for(var i=0; i< numItems; ++i)
{
}
В приведенном выше коде мы вычисляем длину массива только один раз и работаем с этим вычисленным числом, а не выполняем вычисление длины снова и снова.
Опять же, просто высказываю свои мысли здесь.Действительно интересное наблюдение!