为什么'Date()'返回字符串?

时间:2020-09-10 07:29:36

标签: javascript

做东西的时候,我不小心写了

const today = Date()

代替

const today = new Date()

很惊讶地发现这是有效的语法,并且today的类型是字符串。此外,Date() === new Date().toString()返回true。

我在MDN文档中找不到与此有关的任何内容,为什么会发生这种情况?

1 个答案:

答案 0 :(得分:2)

顶部“语法”部分正下方的MDN describes this行为:

注意:实例化新Date对象的唯一正确方法是使用new运算符。如果仅直接调用Date对象(例如now = Date()),则返回的值是字符串而不是Date对象。

在规范here中进行了描述:

  1. 如果未定义NewTarget,则

    a。现在,将数字作为标识当前时间的时间值(UTC)。

    b。返回ToDateString(现在)。