JavaScript入門 練習問題 39:組み込みオブジェクト:Dateオブジェクトの月インデックス
次のコードを実行した際、1月の場合はどのような数値が取得されますか?正しいものはどれですか?
```javascript
const date = new Date("2024-01-15");
console.log(date.getMonth());
```
- 月のインデックスは0から始まるため、0が出力される
- 実際の月と同じ数字が返されるため、1が出力される
- 月の日数が計算の基準になるため、31が出力される
- インデックスは1から始まるため、1が出力される
- 不正な形式として扱われるため、NaNが出力される
正解と解説を見る
正解:月のインデックスは0から始まるため、0が出力される
JavaScriptのDateオブジェクトにおいて、月を取得するgetMonthメソッドは0(1月)から11(12月)までの数値を返すため、0が正解です。
【正解の理由】
getMonth() は現在の月を表す0ベースのインデックスを返します。1月は0、2月は1、12月は11となるため、指定した日付が1月の場合は「0」となります。
【不正解の理由】
• 「実際の月と同じ数字が返されるため、1が出力される」は誤り。月は0から始まるインデックスで管理される
• 「月の日数が計算の基準になるため、31が出力される」は誤り。日数を取得する場合はgetDate()を使う
• 「インデックスは1から始まるため、1が出力される」は誤り。インデックスは1からではなく0から始まる
• 「不正な形式として扱われるため、NaNが出力される」は誤り。ハイフン区切りの日付文字列は正常に解釈される