JavaScript入門 練習問題 47:組み込みオブジェクト:Map
次のコードを実行したときのコンソールへの出力として正しいものはどれですか?
```javascript
const map = new Map();
map.set('name', '太郎');
map.set(1, '数値');
console.log(map.size);
```
- コンソールに 2 という数値が出力される
- コンソールに 1 という数値が出力される
- コンソールに undefined が出力される
- コンソールに NaN という値が出力される
- 型エラーが発生し、何も出力されない
Qraftユーザーの成績:難易度 Cランク(レーティング1162)・正答率 53%(8/15回正解)
レーティングは解いた人の実力と正誤から算出する難しさ(初期値1200)。ランクはその全問題中の順位(S+が最難関、F-が最易)
正解と解説を見る
正解:コンソールに 2 という数値が出力される
`Map`オブジェクトは追加されたキーと値のペアの数を `size` プロパティで取得できるため、2つの要素を追加した後のサイズである `2` が出力されるのが正解です。
【正解の理由】
`Map`オブジェクトには `set` メソッドで2回データが追加されており、それぞれ異なるキー(文字列の'name'と数値の1)を使用しています。`size` プロパティは現在格納されている要素の個数を返すため、2が出力されます。
【不正解の理由】
• 「コンソールに 1 という数値が出力される」は誤り。要素は2つ追加されており、上書きされていないため個数は2です。
• 「コンソールに undefined が出力される」は誤り。`size` プロパティは存在し、正しい数値を返します。
• 「コンソールに NaN という値が出力される」は誤り。計算不可能な値(Not a Number)ではなく、正常に2を返します。
• 「型エラーが発生し、何も出力されない」は誤り。Mapのキーとして数値を使用することは許可されており、エラーにはなりません。