Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
JS - Optional chaining vs try catch
Check if there is any response time difference between the optional chaining and the try catch in javascript.
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
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:
Chrome 129
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
Optional chaining
9455246.0 Ops/sec
Try catch
196301.1 Ops/sec
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);