JavaScript入門 練習問題 64:演算子:プロパティの存在確認
次のコードを実行したときのコンソールへの出力として正しいものはどれですか?
```javascript
const user = { name: "田中", age: 25 };
console.log("age" in user);
console.log("gender" in user);
```
- true と false
- false と true
- true と true
- false と false
- エラーが発生する
正解と解説を見る
正解:true と false
`in`演算子はオブジェクト内に指定したキーが存在するかを真偽値で返すため、1行目はtrue、2行目はfalseになります。
【正解の理由】
`in`演算子は `"プロパティ名" in オブジェクト` の形式で使い、そのプロパティが存在すれば `true` を、存在しなければ `false` を返します。`user`オブジェクトには `age` は存在しますが `gender` は存在しません。
【不正解の理由】
• 『false と true』という説明は誤り。存在するプロパティと存在しないプロパティの判定結果が逆になっている
• 『true と true』という説明は誤り。`gender`プロパティは存在しないため、2行目は `false` になる
• 『false と false』という説明は誤り。`age`プロパティは存在するため、1行目は `true` になる
• 『エラーが発生する』という説明は誤り。存在しないプロパティを調べてもエラーにはならず `false` が返るだけである