className vs setAttribute vs classList
Date tested:
4 years ago
User agent:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
Test name
Executions per second
className
3451.7 Ops/sec
setAttribute
2063.7 Ops/sec
classList
2368.3 Ops/sec
Benchmark definition (click to collapse):
HTML Preparation code:
<div id="foo"></div>
Script Preparation code:
var element = document.getElementById('foo');
Tests:
className
var i = 1000; while (i--) { element.className = "bar"; }
setAttribute
var i = 1000; while (i--) { element.setAttribute("class", "bar"); }
classList
var i = 1000; while (i--) { element.classList.add("bar"); }
Open this result on MeasureThat.net