はじめに
仕事でNode.js v14を使っていますが、開発者が?.
という記述を使っていました。イマイチ良く分からなかったので、整理しました。
Optional chainingとは
オブジェクトのプロパティの値を明示的に確認せずに読み込むことができる。
具体例
Optional chainingを使わない場合
以下のようにuser
とuser.name
が存在することを確認してから、user.name.kana
を取得する必要がある。
let kana = null;
if (
user &&
user.name &&
) {
kana = user.name.kana;
}
Optional chainingを使う場合
上記のように、user
とuser.name
の存在を明示的に確認しなくても、以下のようにuser.name.kana
にアクセスできる。
const kana = user?.name?.kana;
参考
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Optional_chaining
https://shisama.hatenablog.com/entry/2020/04/22/011221