Optional chaining in JavaScript

Table of contents

Optional chaining is a feature in JavaScript to simplify accessing properties or calling methods deeply nested within an object structure, especially when dealing with potentially nullable or undefined intermediate properties. It's denoted by the question mark (?) placed before the dot (.) or bracket ([]) notation.

Here's how it works:

Suppose you have an object person with nested properties:

javascriptCopy codeconst person = {
  name: 'John',
  age: 30,
  address: {
    city: 'New York',
    postalCode: '10001',
    // street: '123 Main St' // Commented out for demonstration
  }
};

If you want to access the street property, you might typically do:

javascriptCopy codeconst street = person.address.street; // This might throw an error if address is null or undefined

However, with optional chaining, you can do:

javascriptCopy codeconst street = person.address?.street;

This syntax ensures that if person.address is null or undefined, the expression will short-circuit and return undefined without throwing an error, instead of trying to access street property on null or undefined.

It can also be used for method calls:

javascriptCopy codeconst result = someObject?.method();

If someObject is null or undefined, the method call will be skipped, and result will be undefined.

This feature is extremely useful when dealing with nested data structures, especially in scenarios like fetching data from APIs where some parts of the data might be missing or undefined. Optional chaining makes your code cleaner and more robust by gracefully handling such cases without needing verbose conditional checks.

10
Subscribe to my newsletter

Read articles from Sunil Kumar Saini directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Sunil Kumar Saini
Sunil Kumar Saini