2011-10-04 66 views
3

为了利用时间戳在JavaScript宥可以写这样的代码:时间戳在JavaScript

// Usual Way 
var d = new Date(); 
timestamp = d.getTime(); 

但是我发现,是否也可以得到同样的结果是这样的:

// The shortest Way 
timestamp = +new Date(); 

有人可以帮助我了解最短路径的工作原理吗?

回答

5

这就是unary plus operator。如果它不是一个数字,它会尝试将后面的参数转换为数字。 Date对象实现了一种允许将其转换为数字的方法,该数字是与getTime()方法相同的时间戳。


得到一个时间戳,而无需使用额外的变量的更清晰和明显的方法是使用括号:

var timestamp = (new Date()).getTime(); 
+0

好的,一元加运算符是如何工作的清楚;例如+“1”给我一个数字;但为什么+新Date()只给我时间戳?我看不到任何时间戳记字符串到Date {Tue Oct 04 2011 13:04:46 GMT + 0200(Romance Daylight Time)} – antonjs

+0

时间戳是所谓的Date对象的“原始值”。日期在内部存储为时间戳。当您尝试将对象转换为数字时,浏览器会为您提供该号码。 – lonesomeday

+0

当我应用+运算符时,是否可以编写一个非常基本的示例(具有原始值的对象),它会给出相同的结果? – antonjs

0

JavaScript是一门动态类型语言,它会尝试适当的上下文转换。

在日期对象前添加一个加号时,它将被转换为数字。