我在几个地方见过这个
function fn() { return +new Date; }
我可以看到它返回的是时间戳而不是日期对象,但我找不到有关加号正在做什么的任何文档.
谁能解释一下?
这是+一元运算符,它相当于:
function(){ return Number(new Date); }
请参阅:http: //xkr.us/articles/javascript/unary-add/
在MDN中:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Unary_plus
JavaScript是松散类型的,因此它在某些情况下执行类型强制/转换:
http://blog.jeremymartin.name/2008/03/understanding-loose-typing-in.html
http://www.jibbering.com/faq/faq_notes/type_convert.html
其他例子:
>>> +new Date() 1224589625406 >>> +"3" 3 >>> +true 1 >>> 3 == "3" true
这是关于"一元添加"运算符的规范.希望能帮助到你...
JavaScript日期可以写为字符串:
2015年9月10日星期四12:02:54 GMT + 0530(IST)
或作为数字:
1441866774938
以数字表示的日期,指定自1970年1月1日00:00:00以来的毫秒数。
谈到您的问题,它是通过在赋值运算符'='之后添加'+'来实现的,从而将Date转换为相等的数字值。
使用Number()函数也可以实现相同的效果,例如Number(new Date());
var date = +new Date(); //same as 'var date =number(new Date());'