className vs setAttribute vs classList
Date tested:
4 years ago
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
Test name
Executions per second
className
3646.5 Ops/sec
setAttribute
2247.5 Ops/sec
classList
2638.7 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