addClass/removeClass vs classList.add/remove
jQuery addClass/removeClass vs classList.add/remove
Date tested:
2 years ago
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0
Test name
Executions per second
jQuery 3.3.1 addClass/removeClass
391097.9 Ops/sec
jQuery 2.1.4 addClass/removeClass
476767.8 Ops/sec
Vanilla JS classList add/remove
715344.2 Ops/sec
Benchmark definition (click to collapse):
HTML Preparation code:
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js'></script> <script type="text/javascript"> var jq331 = $.noConflict(true); </script> <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js'></script> <script type="text/javascript"> var jq214 = $.noConflict(true); </script> <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