做东西的时候,我不小心写了
const today = Date()
代替
const today = new Date()
很惊讶地发现这是有效的语法,并且today
的类型是字符串。此外,Date() === new Date().toString()
返回true。
我在MDN文档中找不到与此有关的任何内容,为什么会发生这种情况?
答案 0 :(得分:2)
顶部“语法”部分正下方的MDN describes this行为:
注意:实例化新Date对象的唯一正确方法是使用new运算符。如果仅直接调用Date对象(例如now = Date()),则返回的值是字符串而不是Date对象。
在规范here中进行了描述:
如果未定义NewTarget,则
a。现在,将数字作为标识当前时间的时间值(UTC)。
b。返回ToDateString(现在)。