为了利用时间戳在JavaScript宥可以写这样的代码:时间戳在JavaScript
// Usual Way
var d = new Date();
timestamp = d.getTime();
但是我发现,是否也可以得到同样的结果是这样的:
// The shortest Way
timestamp = +new Date();
有人可以帮助我了解最短路径的工作原理吗?
为了利用时间戳在JavaScript宥可以写这样的代码:时间戳在JavaScript
// Usual Way
var d = new Date();
timestamp = d.getTime();
但是我发现,是否也可以得到同样的结果是这样的:
// The shortest Way
timestamp = +new Date();
有人可以帮助我了解最短路径的工作原理吗?
这就是unary plus operator。如果它不是一个数字,它会尝试将后面的参数转换为数字。 Date
对象实现了一种允许将其转换为数字的方法,该数字是与getTime()
方法相同的时间戳。
得到一个时间戳,而无需使用额外的变量的更清晰和明显的方法是使用括号:
var timestamp = (new Date()).getTime();
JavaScript是一门动态类型语言,它会尝试适当的上下文转换。
在日期对象前添加一个加号时,它将被转换为数字。
好的,一元加运算符是如何工作的清楚;例如+“1”给我一个数字;但为什么+新Date()只给我时间戳?我看不到任何时间戳记字符串到Date {Tue Oct 04 2011 13:04:46 GMT + 0200(Romance Daylight Time)} – antonjs
时间戳是所谓的Date对象的“原始值”。日期在内部存储为时间戳。当您尝试将对象转换为数字时,浏览器会为您提供该号码。 – lonesomeday
当我应用+运算符时,是否可以编写一个非常基本的示例(具有原始值的对象),它会给出相同的结果? – antonjs