Крутые трюки, у меня есть куча гадостей с множеством безопасных традиционных ответов, не кэширующих длину массива.
function arraySum(array){
var total = 0,
len = array.length;
for (var i = 0; i < len; i++){
total += array[i];
}
return total;
};
var my_array = [1,2,3,4];
// Returns 10
console.log( arraySum( my_array ) );
Без кэширования длины массива JS-компилятору необходимо проходить через массив при каждой итерации цикла, чтобы вычислить длину, в большинстве случаев это лишние издержки. V8 и многие современные браузеры оптимизируют это для нас, так что это не так важно, как раньше, но есть более старые устройства, которые выигрывают от этого простого кэширования.
Если длина может быть изменена, кэширование может вызвать неожиданные побочные эффекты, если вы не знаете, почему вы кэшируете длину, но для функции многократного использования, единственная цель которой - взять массив и добавить значения вместе это отлично подходит.
Вот ссылка CodePen для этой функции arraySum.
http://codepen.io/brandonbrule/pen/ZGEJyV
Возможно, это устаревшее мышление, которое застряло у меня, но я не вижу недостатка в его использовании в этом контексте.