addClass/removeClass vs classList.add/remove

jQuery addClass/removeClass vs classList.add/remove
6 years ago
User agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36
Test name Executions per second
jQuery 3.3.1 addClass/removeClass 85602.9 Ops/sec
jQuery 2.1.4 addClass/removeClass 98289.0 Ops/sec
Vanilla JS classList add/remove 178298.3 Ops/sec
HTML Preparation code:
AخA
 
1
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js'></script>
2
<script type="text/javascript">
3
  var jq331 = $.noConflict(true);
4
</script>
5
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js'></script>
6
<script type="text/javascript">
7
  var jq214 = $.noConflict(true);
8
</script>
9
<div id="testElement"></div>
Tests:
  • jQuery 3.3.1 addClass/removeClass

     
    var element = jq331('#testElement');
    element.removeClass('test-class');
    element.addClass('test-class');
    element.removeClass('test-class');
  • jQuery 2.1.4 addClass/removeClass

     
    var element = jq214('#testElement');
    element.removeClass('test-class');
    element.addClass('test-class');
    element.removeClass('test-class');
  • Vanilla JS classList add/remove

     
    var element = jq331('#testElement')[0];
    element.classList.remove('test-class');
    element.classList.add('test-class');
    element.classList.remove('test-class');
Open this result on MeasureThat.net