addClass/removeClass vs classList.add/remove

jQuery addClass/removeClass vs classList.add/remove
3 years ago
User agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.70
Test name Executions per second
jQuery 3.3.1 addClass/removeClass 279949.0 Ops/sec
jQuery 2.1.4 addClass/removeClass 353669.4 Ops/sec
Vanilla JS classList add/remove 564615.9 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