JavaScript の日付月の謎を解読する
JavaScript では、Date コンストラクターからの不一致月の謎が好奇心を掻き立てます。困惑することに、月の値 9 で作成された日付は、意図した 9 月ではなく 10 月を返します。
JavaScript の内部動作を詳しく調べると、この矛盾の背後にある根本的なロジックがわかります。一般的な規則とは異なり、JavaScript の Date オブジェクトは 0 から始まる月を定義します。したがって、指定された値 9 は、10 月に対応する 10 番目の月として解釈されます。
この微妙な設計上の決定は、Mozilla Developer Network ( MDN):
month
月を表す整数値。1 月の 0 から 12 月の 11 まで。
さらなる確認は、言語仕様そのものから得られます:
- Let mn be ?(ℝ(m) modulo 12).
この数式は事実上月の値を法 12 でラップし、常に 0 ~ 11 の範囲内に収まるようにします。
したがって、コードで指定された月の値は、JavaScript の月の定義に基づいて、対応する 10 月に正しく変換されます。 .
以上がJavaScript で「new Date(2023, 9)」が 10 月を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。