JavaScript 零索引月份的历史异常
当使用构造函数在 JavaScript 中构造一个新的 Date 对象时,出现了一个奇怪的观察结果:月份参数从 0 开始。这种与直观编号的偏差让开发人员困惑了相当多的时间
尽管月份参数是零索引的,但月份参数从 1 开始。这种不一致进一步激发了人们对这种设计选择背后的基本原理的好奇心。
为了揭开这一历史异常的神秘面纱,我们冒险进入编程历史的编年史:
Java 的 Date 的血统API
JavaScript 的创建者 Brendan Eich 在 Twitter 上透露,他采用了 Java 的 JDK1.0(1995)中的 Date API。 Netscape 的 Ken Smith 将 java.util.Date 类移植到 JavaScript,从而继承了这种奇特的月份索引方案。
Java 中已弃用,但 JavaScript 中仍保留
Java 最终在 JDK 1.1 中弃用了这种异常行为,支持从零开始的索引。然而,JavaScript 却保持不变。
现代解决方案和未来前景
虽然 JavaScript 缺乏具有更正月份索引的内置日期/时间 API,但许多第三方Luxon Moment.js、date-fns 和 js-joda 等库已成为可行的替代方案。
On TC39 Temporal 提案旨在为该语言引入全面且现代的日期/时间系统。如果被采用,JavaScript 最终将摆脱其历史怪癖的束缚,并拥抱用户友好且直观的月份编号。
以上是为什么 JavaScript 的'日期”对象使用从零开始的月份索引?的详细内容。更多信息请关注PHP中文网其他相关文章!