解码 JavaScript 的日期月份之谜
在 JavaScript 中,Date 构造函数中的不匹配月份之谜激发了人们的好奇心。令人困惑的是,用月份值 9 构造的日期返回十月,而不是预期的九月。
深入研究 JavaScript 的内部工作原理,我们会遇到这种差异背后的基本逻辑。与常见约定不同,JavaScript 的 Date 对象定义从 0 开始的月份。因此,提供的值 9 被解释为第十个月,对应于十月。
这个微妙的设计决策得到了 Mozilla 开发者网络的证实( MDN):
月份
代表月份的整数值,从 0 开始表示 1 月到 11 表示 12 月。
进一步的确认来自于语言规范本身:
- 设 mn 为 ?(ℝ(m) modulo 12).
这个数学公式有效将月份值以 12 为模数包裹起来,确保它始终落在 0 到 11 的范围内。
因此,代码中提供的月份值会根据 JavaScript 的月份定义正确转换为相应的 10 月.
以上是为什么 JavaScript 中 `new Date(2023, 9)` 返回十月?的详细内容。更多信息请关注PHP中文网其他相关文章!