Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15
Safari 13
Mac OS X 10.15.3
Desktop
5 years ago
Test name Executions per second
for 27332472.0 Ops/sec
for of 21128240.0 Ops/sec
for in 3902593.5 Ops/sec
forEach 20965968.0 Ops/sec
for 2 28488180.0 Ops/sec
while with shift 1532721.5 Ops/sec
while 27553512.0 Ops/sec
while with length reduction 27727566.0 Ops/sec
for reverse 15509858.0 Ops/sec
Tests:
  • for

    AخA
     
    const arr = [1,2,3,4,5,6,7,8,9,10];
    for (var i = 0; i < arr.length; i++){
        var number = arr[i];
    }
  • for of

     
    const arr = [1,2,3,4,5,6,7,8,9,10];
    for (var n of arr){
      var number = n;
    }
  • for in

     
    const arr = [1,2,3,4,5,6,7,8,9,10];
    for (var i in arr){
        var number = arr[i];
    }
  • forEach

     
    const arr = [1,2,3,4,5,6,7,8,9,10];
    arr.forEach(n => {
      var number = n;
    });
  • for 2

     
    const arr = [1,2,3,4,5,6,7,8,9,10];
    for (var i = 0, n = arr.length; i < n; i++){
        var number = arr[i];
    }
  • while with shift

     
    const arr = [1,2,3,4,5,6,7,8,9,10];
    while(arr.length) {
        var number = arr.shift();
    }
  • while

     
    const arr = [1,2,3,4,5,6,7,8,9,10];
    var i = 0;
    var n = arr.length;
    while(i < n) {
        var number = arr[i];
        ++i;
    }
  • while with length reduction

     
    const arr = [1,2,3,4,5,6,7,8,9,10];
    var len = arr.length;
    while (len--) {
        var number = arr[len];
    }
  • for reverse

     
    const arr = [1,2,3,4,5,6,7,8,9,10];
    for (var i = arr.length; i >= 0; --i){
        var number = arr[i];
    }