addClass/removeClass vs classList.add/remove
jQuery addClass/removeClass vs classList.add/remove
Date tested:
6 months ago
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:130.0) Gecko/20100101 Firefox/130.0
Test name
Executions per second
jQuery 3.3.1 addClass/removeClass
146792.3 Ops/sec
jQuery 2.1.4 addClass/removeClass
167526.6 Ops/sec
Vanilla JS classList add/remove
274223.6 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