Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
isNumber: regex vs isNaN vs string comparison (version: 1) vs parseInt
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0
Browser:
Firefox 135
Operating system:
Windows
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
isNaN
18291204.0 Ops/sec
regex
14426184.0 Ops/sec
string comparison
18009448.0 Ops/sec
HTML Preparation code:
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
Script Preparation code:
window.case1 = new Proxy({}, { get(t, p, r) { if (typeof p === 'string' && !isNaN(p)) { return +p } else { return Reflect.get(t, p, r) } } }); window.case2 = new Proxy({}, { get(t, p, r) { if (/^\d+$/.test(p)) { return +p } else { return Reflect.get(t, p, r) } } }); window.case3 = new Proxy({}, { get(t, p, r) { if (p >= '0' && p <= '9') { return +p } else { return Reflect.get(t, p, r) } } }); window.case4 = new Proxy({}, { get(t, p, r) { try { Number.parseInt(p); return +p } catch (_) { return Reflect.get(t, p, r) } } }); window.gabage1 = 0; window.gabage2 = 0; window.gabage3 = 0; window.gabage4 = 0;
Tests:
isNaN
gabage1 =+ case1[_.random(0, 1e3, false)];
regex
gabage2 =+ case2[_.random(0, 1e3, false)];
string comparison
gabage3 =+ case3[_.random(0, 1e3, false)];