很抱歉,按照我对对象的理解,new Date()
没有返回对象。
来自the MDN article on Date
constructor :
When no parameters are provided, the newly-created Date object represents the current date and time as of the time of instantiation.
(强调)
好吧,对象在哪里:
const date1 = new Date();
console.log(date1);
// returns Wed Jan 27 2021 15:45:31 GMT+0100
一个对象是
{date: "Wed Jan 27 2021 15:45:31 GMT+0100")}
但它看起来更像是一个字符串,但我们不能像字符串一样操作它,因为:
const date1 = new Date();
console.log(date1[0]); // expecting "W"
// returns undefined
我知道如何使用不同的时间方法来操纵这种特殊格式,但这对我来说一直是一个谜。
这是什么格式?
另一种类型?
为什么构造函数new Date()
没有返回对象?
最佳答案
当调用new Date()
时,您将获得一个日期对象。当调用 console.log(new Date()) 时,日期对象的 toString 方法将隐式被调用( not 100% true ,但你明白了)。控制台对象的工作方式是由您的浏览器/环境实现的。我的猜测是将日期显示为字符串是他们内置的一种便利。
就像其他人在评论中提到的那样,尝试 console.log(typeof new Date())
/console.dir(new Date())
或调用任何methods documented的。你会发现它绝对是一个对象。
关于javascript - 新日期不是一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65921555/