美好的一天。 我今天在与这种情况有关的工作中发现了一个错误,但无法弄清楚这种行为的原因。
为什么:
new Date(undefined)
返回无效日期,但是:
new Date(null)
返回有效的一个(1970年1月1日星期四00:00:00 GMT + 0000(GMT标准时间))
答案 0 :(得分:5)
我怀疑是因为
Number(undefined)
是NaN
而
Number(null)
是0
。 Date
构造函数尝试强制其参数为数字。如果该号码为NaN
,则您的日期无效。如果它是0
,那么它就是纪元日期。
如果您想要安全并且您遇到undefined
价值偷偷摸摸的问题,您可以随时执行类似
var theDate = new Date( whatever || 0 );
然而,这些日期的用处似乎值得怀疑。