Test case details

Preparation Code

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"> </script>
var i,       value,       length,       values = [],       sum = 0,       context = values;             for (i = 0; i < 10000; i++) {       values[i] = Math.random();     }         function add(val) {       sum += val;     }
    i = 0;     value = 0;     length = 0;     values = [];     sum = 0;

Test cases

Test #1

values.forEach(add);

Test #2

for (i = 0; i < values.length; i++) {   sum += values[i]; }

Test #3

length = values.length; for (i = 0; i < length; i++) {   sum += values[i]; }

Test #4

for (i = values.length - 1; i >= 0; i--) {   sum += values[i]; }

Test #5

length = values.length; for (i = 0; i < length; i++) {   add(values[i], i, values); }

Test #6

length = values.length; for (i = 0; i < length; i++) {   add.call(context, values[i], i, values); }

Test #7

$.each(values, function(key, value) {   sum += value; });

Test #8

for (i in values) {   sum += values[i]; }

Test #9

for (i = values.length; i--;) {   sum += values[i]; }

Test #10

for (i = values.length - 1; i >= 0; --i) {   sum += values[i]; }

Test #11

for (i = 0;   (value = values[i]) !== undefined; i++) {   sum += value; }

Test #12

for (i = values.length - 1;   (value = values[i]) !== undefined; i--) {   sum += value; }

Test #13

for (i = 0;   (value = values[i]) !== undefined; i++) {   add(value, i, values); }

Test #14

for (i = 0;   (value = values[i]) !== undefined; i++) {   add.call(context, value, i, values); }

Test #15

values.forEach(add);

Test #16

for (i = values.length; i > 0;) {   sum += values[--i]; }

Test #17

i = values.length; while (i >= 0) {   sum += values[i--]; }

Test #18

const fixedLength = values.length; for (i = 0; i < fixedLength; i++) {   sum += values[i]; }