jQuery vs vanilla

Benchmark created by Doug Miller on


Preparation HTML

<script src="https://code.jquery.com/jquery-3.1.1.min.js"   integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="   crossorigin="anonymous"></script>
<div class="list" id="list">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item" id="last"></div>
</div>

Test runner

Ready to run.

Testing in
TestOps/sec
jquery class selector
var items = $('.item');
ready
vanilla class selector
var items = document.getElementsByClassName('item');
ready
Vanilla QuerySelector
var items = document.querySelectorAll('#list .item');
ready
jQuery Query Selector
var items = $('#list .item');
ready
jQuery id selector
var last = $('#last');
ready
Vanilla id selector
var last = document.getElementById('last');
ready
Vanilla each
function each(nodeList, cb) {
  for(var i = 0; i < nodeList.length;i++) {
    cb(nodeList[i], i, nodeList);
  }
}

each(document.getElementsByClassName('item'), function(node, i) {
  console.log(node);
});
ready
Jquery each
$('.item').each(function(index, element) {
  console.log(element);
});
ready
Another Vanilla forEach
Array.prototype.forEach.call(document.querySelectorAll('.item'), function(node, i){
console.log(node);
});
ready
Vanilla each querySelectorAll
function each(nodeList, cb) {
  for(var i = 0; i < nodeList.length;i++) {
    cb(nodeList[i], i, nodeList);
  }
}

each(document.querySelectorAll('.item'), function(node, i) {
  console.log(node);
});
ready

Revisions

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

  • Revision 1: published by Doug Miller on