You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何"best-of-5"是合法JavaScript日期?Chrome/Node解析结果疑问

为什么"best-of-5"能被解析为有效JavaScript日期?

Chrome和Node.js使用的V8引擎对日期字符串采用宽松解析逻辑,这是"best-of-5"能被识别的核心原因,具体拆解如下:

  • 引擎会直接忽略字符串中无法识别的前缀"best-",只聚焦后续能匹配日期规则的部分。
  • 剩下的"-of-"里,"of"会被当成英式日期格式里的介词(类似"1号 of 5月"的结构),触发对后续数字的月份解析。
  • 后面的"5"被解析为5月;由于没指定日期和年份,引擎会自动补全:日期默认取当月1号,年份则遵循V8的特定规则——当前年份减去21年(提问时的当前年份为2022,2022-21=2001)。
  • 最后根据本地时区(比如提问者所在的UTC+2时区)转换为UTC时间:本地时间2001-05-01 00:00对应UTC的2001-04-30T22:00:00.000Z,这就是你看到的结果。

需要注意的是,这种宽松解析是V8引擎的私有实现,并非ECMAScript标准强制要求的。换用其他JS引擎(比如Firefox的SpiderMonkey),new Date("best-of-5")会直接返回Invalid Date。

内容的提问来源于stack exchange,提问作者Tomasz Cichociński

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 13:18:13