Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
JS - Optional chaining vs try catch
(version: 0)
Check if there is any response time difference between the optional chaining and the try catch in javascript.
Comparing performance of:
Optional chaining vs Try catch
Created:
one year ago
by:
Guest
Jump to the latest result
Script Preparation code:
const testObj = { axaFrInsuranceAgreement: { partyRoleInAgreementGroup: { agreementHolder: { relatedParty: { organization: { establishment: [ { organizationDetailGroup: { organizationInsuranceExperience: [ { claimInPeriodRecords: [ { effectivePeriod: { startDateTime: "string" } } ], } ], }, } ], } } }, }, }, }; const tryGetFnSafely = (fn, defaultVal) => { try { return fn(); } catch (e) { return defaultVal; } };
Tests:
Optional chaining
const testObj = { axaFrInsuranceAgreement: { partyRoleInAgreementGroup: { agreementHolder: { relatedParty: { organization: { establishment: [ { organizationDetailGroup: { organizationInsuranceExperience: [ { claimInPeriodRecords: [ { effectivePeriod: { startDateTime: "string" } } ], } ], }, } ], } } }, }, }, }; const testValueOk = testObj?.axaFrInsuranceAgreement?.partyRoleInAgreementGroup?.agreementHolder?.relatedParty?.organization?.establishment?.[0]?.organizationDetailGroup?.organizationInsuranceExperience?.[0]?.claimInPeriodRecords?.[0]?.effectivePeriod?.startDateTime; const testValueErr = testObj?.axaFrInsuranceAgreement?.partyRoleInAgreementGroup?.agreementHolder?.relatedParty?.organization?.establishment?.[1]?.organizationDetailGroup?.organizationInsuranceExperience?.[1]?.claimInPeriodRecords?.[0]?.effectivePeriod?.startDateTime;
Try catch
const testObj = { axaFrInsuranceAgreement: { partyRoleInAgreementGroup: { agreementHolder: { relatedParty: { organization: { establishment: [ { organizationDetailGroup: { organizationInsuranceExperience: [ { claimInPeriodRecords: [ { effectivePeriod: { startDateTime: "string" } } ], } ], }, } ], } } }, }, }, }; const tryGetFnSafely = (fn, defaultVal) => { try { return fn(); } catch (e) { return defaultVal; } }; const testValueOk = tryGetFnSafely(() => testObj.axaFrInsuranceAgreement.partyRoleInAgreementGroup.agreementHolder.relatedParty.organization.establishment[0].organizationDetailGroup.organizationInsuranceExperience[0].claimInPeriodRecords[0].effectivePeriod.startDateTime, null); const testValueErr = tryGetFnSafely(() => testObj.axaFrInsuranceAgreement.partyRoleInAgreementGroup.agreementHolder.relatedParty.organization.establishment[1].organizationDetailGroup.organizationInsuranceExperience[1].claimInPeriodRecords[0].effectivePeriod.startDateTime, null);
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (2)
Previous results
Fork
Test case name
Result
Optional chaining
Try catch
Fastest:
N/A
Slowest:
N/A
Latest run results:
Run details:
(Test run date:
one year ago
)
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36
Browser/OS:
Chrome 129 on Mac OS X 10.15.7
View result in a separate tab
Embed
Embed Benchmark Result
Test name
Executions per second
Optional chaining
9455246.0 Ops/sec
Try catch
196301.1 Ops/sec
Related benchmarks:
Try/Catch vs Typeof
The performance cost of try catch
try vs if // no error
Observables: loops with try/catch versus EventTarget
Try/catch vs .catch
Comments
Confirm delete:
Do you really want to delete benchmark?