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






最近のコメント