はじめに
data?.resultsという表記の意味がわからなかったので調べた。
オプショナルチェーン
この?という表記はオプショナルチェーンまたは、オプショナルチェイニングというらしい。オプショナルチェーンの方がかっこいいからそう呼ぶことにする。
意味
?の前にある変数、定数がnullまたは、undefinedの場合にアクセスを中断し、undefinedを返すという意味。
使用例
user.likes.foodは存在するため'sushi'を出力
user.addres?.prefectureは存在しないが、?があるためundefinedを出力
user.address.prefectureは存在しないし、?もないためエラーを出力
const user = {
age: 30,
likes: { food: "sushi" },
};
console.log(user.likes?.food); // 'sushi'
console.log(user.address?.prefecture); // undefined
console.log(user.address.prefecture); // TypeError: Cannot read properties
終わりに
個人的には非同期処理の際に見かけることが多いような気がする。