Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
for vs for..of vs NodeList.forEach vs Array.forEach vs jQuery.each
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6.1 Safari/605.1.15
Browser:
Safari 17
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
for
1346.9 Ops/sec
for..of
1505.4 Ops/sec
NodeList.forEach
1414.0 Ops/sec
Array.forEach
998.1 Ops/sec
jQuery.each
2219.0 Ops/sec
HTML Preparation code:
<content id="demo">Hello World!</content> <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js'></script>
Script Preparation code:
let content = ''; for (let i=0; i<10000; i+=1) { content += '<div class="component" data-component="component' + i + '">Content ' + i + '</div>'; } document.getElementById("demo").innerHTML = content;
Tests:
for
let components = []; let values = []; const queryComponentsFor = document.querySelectorAll('[data-component]'); for (let i = 0; i < queryComponentsFor.length; ++i) { values.push(queryComponentsFor[i].getAttribute('data-component')); components.push(queryComponentsFor[i]); }
for..of
let components = []; let values = []; for (let el of document.querySelectorAll('[data-component]')) { values.push(el.getAttribute('data-component')); components.push(el); }
NodeList.forEach
let components = []; let values = []; document.querySelectorAll('[data-component]').forEach(el => { values.push(el.getAttribute('data-component')); components.push(el); });
Array.forEach
let components = []; let values = []; [...document.querySelectorAll('[data-component]')].forEach(el => { values.push(el.getAttribute('data-component')); components.push(el); });
jQuery.each
let components = []; let values = []; $('[data-component]').each((i, el) => { values.push(el.getAttribute('data-component')); components.push(el); });