Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Chrome 120
Mac OS X 10.15.7
Desktop
one year ago
Test name Executions per second
for 89543.0 Ops/sec
foreach 224603.5 Ops/sec
for..of 226733.9 Ops/sec
for..of over entries 212760.2 Ops/sec
for..in 112232.5 Ops/sec
for cache length 129762.6 Ops/sec
for reverse 129815.3 Ops/sec
while 129743.4 Ops/sec
Script Preparation code:
AخA
 
var array = Array.from({length: 100});
var t;
Tests:
  • for

     
    for (let i = 0; i < array.length; i++) {
      t = array[i];
    }
  • foreach

     
    array.forEach(function(v, i) {
      t = v;
    });
  • for..of

     
    for (var v of array) {
      t = v;
    }
  • for..of over entries

     
    for (var [i, v] of array.entries()) {
      t = v;
    }
  • for..in

     
    for (var k in array) {
      t = array[k];
    }
  • for cache length

     
    for (let i = 0,len = array.length; i < len; i++) {
      t = array[i];
    }
  • for reverse

     
    for (let i = array.length - 1; i >= 0; i--) {
      t = array[i];
    }
  • while

     
    let i=0,len = array.length
    while(i < len){
      t = array[i]
      i++
    }