className vs setAttribute vs classList
Date tested:
4 years ago
User agent:
Mozilla/5.0 (iPhone; CPU iPhone OS 12_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Instagram 106.0.0.9.118 (iPhone10,6; iOS 12_4; en_GB; en-GB; scale=3.00; 1125x2436; 166752244)
Test name
Executions per second
className
8396.5 Ops/sec
setAttribute
6765.4 Ops/sec
classList
5548.8 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