Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
className const/cached/new regex, classList contains, className split includes, className indexOf scan
(version: 0)
Comparing performance of:
className const regex vs className cached regex vs className new regex vs classList contains vs className split includes vs className indexOf scan
Created:
4 years ago
by:
Guest
Jump to the latest result
Script Preparation code:
var el = document.createElement('div'); el.className = 'foo bar baz hello world'; var xs = 'hello'; var xre = new RegExp('\\b' + xs + '\\b'); var cache = new Map();
Tests:
className const regex
return xre.test(el.className);
className cached regex
let s = xs; // ensure local var instead of closure var let re = cache.get(s); if (!re) { re = new RegExp('\\b' + s + '\\b'); cache.set(s, re); } return re.test(el.className);
className new regex
return new RegExp('\\b' + xs + '\\b').test(el.className);
classList contains
return el.classList.contains(xs);
className split includes
return el.className.split(' ').includes(xs);
className indexOf scan
let s = xs; // ensure local var instead of closure var let c = el.className; let sl = s.length; let cl = c.length; let i = c.indexOf(s); //console.debug(i); if (i === 0) { let j = i + sl; if (j === cl || c[j] === ' ') return true; } while (i !== -1) { let j = i + sl; if (c[i - 1] === ' ' && (j === cl || c[j] === ' ')) return true; i = c.indexOf(s, j + 1); //console.debug(i); } return false;
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (6)
Previous results
Fork
Test case name
Result
className const regex
className cached regex
className new regex
classList contains
className split includes
className indexOf scan
Fastest:
N/A
Slowest:
N/A
Latest run results:
No previous run results
This benchmark does not have any results yet. Be the first one
to run it!
Related benchmarks:
$.hasClass vs RegExp vs indexOf vs classList
$.hasClass vs RegExp vs indexOf vs classList 2
Set element class
className const/cached/new regex, classList contains, className split includes
Comments
Confirm delete:
Do you really want to delete benchmark?