new Date(null)
// Date 1970-01-01T00:00:00.000Z
为什么我在JavaScript控制台中输入new Date(null)
时我得到了Date 1970-01-01T00:00:00.000Z
?
答案 0 :(得分:7)
因为ECMAScript 2017标准是这样说的吗?
ECMA部分20.3.1.1声明:
1970年1月1日午夜的确切时刻UTC 由值+0 表示。
......这可能会让你说,“......但是!,但是!,我没有说+0,我说”:
new Date(null)
好的,那就让我们遵循那个标准......
该Date构造函数示例转到20.3.2.2部分,其中项目 3.b.iii 表示:
3.b.iii:否则,让V为ToNumber(v)。
ToNumber是一个超链接,因此请按照7.1.3部分,其中有一个数字转换表,其中显示:
参数类型|结果强>
空| 0
因此:
new Date(null)
有效地成为:
new Date(+0)
这就是你最终得到的原因:
日期1970-01-01T00:00:00.000Z
答案 1 :(得分:0)
显然是因为(Unix时间戳0)是Date对象默认初始化的内容,是吗?
答案 2 :(得分:0)
在执行新的日期(空)时,它将为我返回Wed Dec 31 1969 Wed Dec 31格林尼治标准时间-0500(东部标准时间)。