The optional chaining operator (?.) can be used to access the following:
- Properties (
foo?.bar) - Indexes (
foo?.[1]) - Functions (
foo?.())
Examples:
const foo = {
bar: 'baz',
ping: {
pong: 'bam'
},
fn: () => "You found me!"
};
console.log(foo.ping?.pong);
// Output: 'bam'
console.log(foo.foobar?.pong);
// Output: undefined
console.log(foo.bar?.[0]);
// Output: 'b'
console.log(foo.baz?.[0]);
// Output: undefined
console.log(foo.fn?.());
// Output: 'You found me!'
console.log(foo.secretfn?.());
// Output: undefined