JSFiddle - React, Tailwind, and code Playground

JavaScript

var arr = new Array(1e6).fill().map(Math.random);

var tic = performance.now();
for(var i=0; i<arr.length; ++i) if(arr[i] < 0) throw 0;
console.log('For loop: ', performance.now()-tic);

function forEach (object, callback, scope) {
    var result = undefined;
    if (typeof object.length != 'undefined') {
        for (var iterator = 0; iterator < object.length; iterator++) {
            result = callback.call(scope, object[iterator], iterator, object);
            if (result !== undefined) {
                break;
            }
        }
    } else {
        for (var property in object) {
            if (Object.prototype.hasOwnProperty.call(object, property)) {
                result = callback.call(scope, object[property], property, object);
                if (result !== undefined) {
                    break;
                }
            }
        }
    }
    return result;
}

var tic = performance.now();
forEach(arr, function(value) {
	if (value < 0) {
  	throw 0;
  }
});
console.log('Custom forEach loop: ', performance.now()-tic);

var tic = performance.now();
for(var n of arr) if(n < 0) throw 0;
console.log('For...of loop: ', performance.now()-tic);

var tic = performance.now();
for(var i in arr) if(arr[i] < 0) throw 0;
console.log('For...in loop: ', performance.now()-tic);

var tic = performance.now();
arr.forEach(function(n) { if(n < 0) throw 0; });
console.log('Array.forEachFor each loop: ', performance.now()-tic);