JavaScript入門 練習問題 34:組み込みオブジェクト:Object.keysによるプロパティ名取得
次のコードの実行結果として正しいものはどれですか?
```javascript
const person = { name: '山田', age: 28, job: 'エンジニア' };
console.log(Object.keys(person));
```
- ['name', 'age', 'job']
- ['山田', 28, 'エンジニア']
- { name: '山田', age: 28, job: 'エンジニア' }
- [0, 1, 2]
- undefined
Qraftユーザーの成績:難易度 Bランク(レーティング1287)・正答率 39%(11/28回正解)
レーティングは解いた人の実力と正誤から算出する難しさ(初期値1200)。ランクはその全問題中の順位(S+が最難関、F-が最易)
正解と解説を見る
正解:['name', 'age', 'job']
Object.keys()はオブジェクトのプロパティ名(キー)だけを配列として取り出すメソッドのため、['name', 'age', 'job']が返されます。
【正解の理由】
Object.keys()はオブジェクトの列挙可能なプロパティ名を配列にして返す標準メソッドであり、値ではなくキーの一覧が対象となります。
【不正解の理由】
• 「['山田', 28, 'エンジニア']」:これはプロパティの値の一覧であり、Object.values()の結果に相当する
• 「{ name: '山田', age: 28, job: 'エンジニア' }」:これは元のオブジェクトそのものであり、キーだけを抽出した結果ではない
• 「[0, 1, 2]」:配列のインデックス番号のような値であり、オブジェクトのプロパティ名ではない
• 「undefined」:Object.keys()は必ず配列を返すメソッドであり、undefinedにはならない