为什么新的Date()是一个字符串值?

时间:2014-08-25 18:55:55

标签: javascript object

通常,当我调用new关键字时,它绝对会输出一个对象。例如:

function Time(){
    this.now = new Date();
}
console.log(new Time());
//{now : 'Tue Aug 26 2014 01:52:15 GMT+0700 (SE Asia Standard Time)'}

new Date()如何成为字符串值?

2 个答案:

答案 0 :(得分:7)

简短回答:

不是。

在您的控制台中输入:

typeof new Date()

正确返回"object"

但是,该对象作为名为toString()的方法返回,它将返回...一个字符串。

var date = new Date();
console.log(typeof date)
console.log(date.toString())


object
Mon Aug 25 2014 14:58:28 GMT-0400 (Eastern Daylight Time) 

编辑:在JavaScript API的奇怪转折中,typeof Date()确实返回"string"。请注意丢失的new关键字。

答案 1 :(得分:1)

new Date()会按预期返回一个对象,而不是一个字符串。

> typeof new Date()
"object"

> typeof "some string"
"string"

console.log()必须生成一个字符串。如果要记录的对象提供了字符串化方法(toString),console.log()将使用它来生成可读的日志条目。