为什么新的Date(null,null,null)在浏览器中返回有效日期?

时间:2017-11-01 19:29:33

标签: javascript date browser

我一直在浏览器和运行时检查日期功能

在开发工具控制台中

new Date (null, null, null);,它提供了有效的日期

chrome v 61 return

  

Sun Dec 31 1899 00:00:00 GMT + 0530(IST)

和firefox DeveloperEdition v 56返回

  

日期1899-12-30T18:30:00.000Z

为什么呢?

P.S。:还尝试了new Date(0,0,0)new Date([],[],[]),它的行为与上述相同,并输出有效日期。

所以在Date对象中使用null时会被视为0吗?

有人请解释行为和链接以了解此行为

1 个答案:

答案 0 :(得分:1)

根据latest drafts of the specs on Date(year, month [ , date ...) ] constructor,何时

  
      
  • 2 - 断言numberOfArgs≥2
      [...]
  •   
  • 4      
        
    • a - 我们是吗? ToNumber(年)。
    •   
    • b - 我是吗? ToNumber(一个月)。
    •   
    • c - 如果有日期,请问dt是? ToNumber(日期);否则让dt为1   ...
    •   
  •   

ToNumber(您传递的所有值)返回0是。

console.log( +null, +0, +[] );