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