Date.now()、new Date().getTime() 和 +new Date 之间的区别

Sha*_*ory 2 javascript node.js

我通常使用 Date.now() 来获取时间戳。但最近我必须构造一个 Date 对象并学习所有方法。我发现 .getTime() 返回与 Date.now() 相同的内容。那么 getTime() 有什么意义呢?另外,为什么这个有效+new Date<-- Date 后面没有 () ,new 前面没有 + 。为什么它还返回时间戳?

Abi*_*n47 5

Date.now()为您提供现在的时间戳。

Date.getTime()为您提供可能代表过去或未来某个时刻的日期对象的时间戳。

+new Date是一种有点令人困惑的说法“创建一个新的 Date 对象,然后将其转换为数字”(与 相同new Number(new Date()),当您将 a 转换Date为数字时,它返回日期的时间戳(即getTime().

如果您希望这一秒的时间戳正确,请使用#1;如果您想获取Date从其他地方获得的对象的时间戳,请使用#2。永远不要使用 #3 - 它可能看起来很聪明,但你所做的只是编写稍后会让你自己或其他人感到困惑的代码。

(顺便说一句,之所以new Date有效,是因为如果不传递任何参数,实际上并不需要括号来创建对象。如果没有其他情况,为了可读性,您仍然应该使用空参数。)