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

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

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); }