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 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/123.0.6312.52 Mobile/15E148 Safari/604.1
Browser:
Chrome Mobile iOS 123
Operating system:
iOS 17.4
Device Platform:
Mobile
Date tested:
2 years ago
Test name
Executions per second
isNaN
2692524.2 Ops/sec
regex
3030436.5 Ops/sec
string comparison
2907900.8 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)];