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 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0
Browser:
Chrome 129
Operating system:
Windows
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
Optional chaining
7924569.5 Ops/sec
Try catch
125881.5 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);