className vs setAttribute vs classList

2 years ago
User agent: Mozilla/5.0 (iPhone; CPU iPhone OS 16_1_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Mobile/15E148 Safari/604.1
Test name Executions per second
className 15119.3 Ops/sec
setAttribute 12363.8 Ops/sec
classList 9843.9 Ops/sec
HTML Preparation code:
AخA
 
1
<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