JavaScript入門 練習問題 50:オブジェクト:const宣言とプロパティの変更
次のコードを実行したときのコンソールへの出力として正しいものはどれですか?
```javascript
const user = { name: "Alice" };
user.name = "Bob";
console.log(user.name);
```
- コンソールに "Bob" と出力される。
- コンソールに "Alice" と出力される。
- 実行時に TypeError が発生する。
- コンソールに undefined と出力される。
- コンソールに null と出力される。
正解と解説を見る
正解:コンソールに "Bob" と出力される。
コンソールには "Bob" と出力されるのが正解です。
【正解の理由】
`const`キーワードで宣言された変数は再代入が禁止されますが、オブジェクト自体のプロパティ(中身)を変更することは許可されています。そのため、`user.name = "Bob"` は正常に実行され、出力結果は変更後の値になります。
【不正解の理由】
• 「コンソールに "Alice" と出力される。」は、値の変更が無視されるという点で誤り
• 「実行時に TypeError が発生する。」は、再代入エラーが起きると誤解しているため誤り
• 「コンソールに undefined と出力される。」は、プロパティが消去されるわけではないため誤り
• 「コンソールに null と出力される。」は、値がnullに変換されるわけではないため誤り