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