JavaScript入門 オプショナルチェーンの使い方
オブジェクトのプロパティにアクセする際に、そのプロパティがundefined やnullだった時には、エラーになります。
以下の例では、dog はないので、adventurer.dog.name へのアクセスはエラーになります。
const adventurer = {
name: 'Alice',
cat: {
name: 'Dinah'
}
}
console.log(adventurer.dog.name) //Uncaught TypeError: Cannot read property 'name' of undefined"
これまでは以下のように、dog が存在するかをチェックする必要がありました。
const adventurer = {
name: 'Alice',
cat: {
name: 'Dinah'
}
}
console.log(adventurer.dog === undefined ? undefined : adventurer.dog.name) // undefined
以下も同じですが、adventurer.dog を二回書かないために、先に adventurerDog に割り当てています。
(ただし、グローバル変数を定義しているのであまり良くない)
let adventurerDog
const adventurer = {
name: 'Alice',
cat: {
name: 'Dinah'
}
}
console.log((adventurerDog = adventurer.dog) === undefined ? undefined : adventurerDog) //undefined
オプショナルチェーンを使用すると、簡潔に書くことができます。
const adventurer = {
name: 'Alice',
cat: {
name: 'Dinah'
}
}
console.log(adventurer.dog?.name) //undefined
最近のコメント