for vs forEach

JavaScript performance comparison

Revision 561 of this test case created by Ryan Shaw

Preparation code


      
      <script>
Benchmark.prototype.setup = function() {
  var i,
      value,
      length,
      values = [],
      sum = 0,
      context = values;
  
  
  for (i = 0; i < 10000; i++) {
      values[i] = Math.random();
  }
  
  function add(val) {
      sum += val;
  }

};

Benchmark.prototype.teardown = function() {
  i = 0;
  value = 0;
  length = 0;
  values = [];
  sum = 0;

};
</script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in CCBot 2.0.0 / Other 0.0.0
Test Ops/sec
babel-ified for...of
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;

try {
  for (
    var _iterator = values[Symbol.iterator](), _step;
    !(_iteratorNormalCompletion = (_step = _iterator.next()).done);
    _iteratorNormalCompletion = true
  ) {
    var val = _step.value;

    sum += val;
  }
} catch (err) {
  _didIteratorError = true;
  _iteratorError = err;
} finally {
  try {
    if (!_iteratorNormalCompletion && _iterator.return) {
      _iterator.return();
    }
  } finally {
    if (_didIteratorError) {
      throw _iteratorError;
    }
  }
}
pending…
for of
for (const val of values) {
    sum += val;
}
pending…
forEach
values.forEach(val => {
  sum += val
});
pending…
babel-ified forEach
values.forEach(function(val) {
  sum += val;
});
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL.

0 Comments