Run details:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36
Chrome 87
Linux
Desktop
3 years ago
Test name Executions per second
Use hasClass shorthand 1436421.9 Ops/sec
Use classList 1792645.9 Ops/sec
Use classname match 1132708.0 Ops/sec
HTML Preparation code:
AخA
 
1
<div id="foo" class="bar baz"></div>
Script Preparation code:
 
var test_element = document.getElementById("foo");
Tests:
  • Use hasClass shorthand

    x
     
    function hasClass(element, classes) {
        classes = classes.split(' ');
        for (var i = 0; i < classes.length; i++) {
            if (!element.classList.contains(classes[i])) {
                return false;
            }
        }
        return true;
    };
    hasClass(test_element, "bar baz");
  • Use classList

     
    test_element.classList.contains("bar");
    test_element.classList.contains("baz");
  • Use classname match

     
    test_element.className.match('bar');
    test_element.className.match('baz');