Toggle navigation
MeasureThat
.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
lodash.get vs optional chaining(babel) vs optional chaining(es2020) vs Without Optional chaining
Compare lodash.get to babel transpiled ?. (optional chaining) operator
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36
Browser:
Chrome 150
Operating system:
Windows
Device Platform:
Desktop
Date tested:
one month ago
Without Optional chaining
1081.4M/s
Optional chaining (babel es2015)
1081.3M/s
Optional chaining (es2020)
1080.1M/s
lodash.get
31.6M/s
View exact numbers
Test name
Executions per second
✓
Without Optional chaining
1,081,445,248 Ops/sec
Optional chaining (babel es2015)
1,081,310,464 Ops/sec
Optional chaining (es2020)
1,080,146,560 Ops/sec
lodash.get
31,566,752 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:
var state = { wrapped1: { wrapped2: { location: { search: '', id: 12 } } }, data: {} };
Tests:
lodash.get
var l = _.get(state, ['wrapped1','wrapped2','location','search']);
Optional chaining (babel es2015)
var _state$wrapped, _state$wrapped$wrappe, _state$wrapped$wrappe2; var s = state === null || state === void 0 ? void 0 : (_state$wrapped = state.wrapped1) === null || _state$wrapped === void 0 ? void 0 : (_state$wrapped$wrappe = _state$wrapped.wrapped2) === null || _state$wrapped$wrappe === void 0 ? void 0 : (_state$wrapped$wrappe2 = _state$wrapped$wrappe.location) === null || _state$wrapped$wrappe2 === void 0 ? void 0 : _state$wrapped$wrappe2.search;
Optional chaining (es2020)
var c = state?.wrapped1?.wrapped2?.location?.search
Without Optional chaining
var d = state || state.wrapped1 || state.wrapped1.wrapped2 || state.wrapped1.wrapped2.localtion || state.wrapped1.wrapped2.localtion.search