$.each vs for vs for without testing (v2)

Revision 2 of this benchmark created by he8us on


Description

Few days ago I saw a code which used a for loop without checking the lenght of the array, just by testing if something is returned when trying the corresponding key.

Preparation HTML

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<div>
  1
</div>
<script>
  $divs = $('div');
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
each
$divs.each(function() {
  var $div = this;
});
ready
for
for (i = 0; i < $divs.length; i++) {
  var $div = $divs.get(i);
}
ready
for without testing length
for (i = 0; $divs[i]; i++) {
  var $div = $divs.get(i);
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.