Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么';日期()';返回字符串?_Javascript - Fatal编程技术网

Javascript 为什么';日期()';返回字符串?

Javascript 为什么';日期()';返回字符串?,javascript,Javascript,在做东西的时候,我不小心写了 const today=Date() 而不是 const today=新日期() 并且惊奇地发现这是有效的语法,而今天的类型是字符串。此外,Date()==new Date().toString()返回true 我在MDN文档中找不到与此相关的任何内容,为什么会发生这种情况?MDN行为位于顶部“语法”部分的正下方: 注意:实例化新日期对象的唯一正确方法是使用new操作符。如果直接调用Date对象,例如now=Date(),则返回的值是字符串而不是日期对象 规范中

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

const today=Date()
而不是

const today=新日期()
并且惊奇地发现这是有效的语法,而今天的
类型是字符串。此外,
Date()==new Date().toString()
返回true

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

MDN行为位于顶部“语法”部分的正下方:

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

规范中对其进行了描述:

  • 如果NewTarget未定义,则

    a。现在,让我们以时间值(UTC)表示当前时间

    b。返回ToDateString(现在)

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

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

    规范中对其进行了描述:

  • 如果NewTarget未定义,则

    a。现在,让我们以时间值(UTC)表示当前时间

    b。返回ToDateString(现在)

  • 当您在内部调用
    Date()
    时已应答
    (新日期())。将调用toString()
    。尝试运行
    (新日期())。当您在内部调用
    Date()
    (新日期())时,toString()==Date()
    已应答。toString()
    已被调用。尝试运行
    (新日期())。toString()==日期()