?. は “存在していればアクセスする、無ければ undefined を返す” 演算子
つまり エラーを出さずに安全にアクセスするための書き方。
通常のコード:
baseLabels.length
これ、もし baseLabels が undefined だったら?
普通のアクセスだとエラーになる
Uncaught TypeError: Cannot read properties of undefined (reading 'length')
つまり 処理が落ちる。
オプショナルチェイニング(?.)をつけるとエラーにならない。
baseLabels?.length
| baseLabels | baseLabels?.length の結果 |
|---|---|
["a", "b"] |
2 |
[] |
0 |
undefined |
undefined |
null |
undefined |