JavaScriptのオプショナルチェイニング演算子(?.
)を使うと、存在するかどうかわからないプロパティにアクセスする際に安全にアクセスできる。
const dogName = adventurer?.dog.name;
で、オブジェクトのプロパティではなくて配列の要素にアクセスする際にはどうやって書けばいいんだと思ってたらこういう書き方ができるのを最近知った。
const memberName = members?.[0].name;
便利。
追記: 関数呼び出しもオプショナルチェイニング演算子を使って記述できることを教えてもらった。次のような書き方もOK。
doSometing?.();
Optional Chaining for JavaScriptを見たらサポートされていない書き方もあったので書き出しておく。次の例は文法エラーである。
// コンストラクタにはダメ
new a?.();
// タグ付きテンプレートリテラルはダメ
a?.`string`;
// 代入の左辺に使うのはダメ
a?.b = c;