2008-10-21 25 views
194

我已經看到了這一點做了幾個places什麼是加號「+新日期」

function fn() { 
    return +new Date; 
} 

而且我可以看到它返回一個時間戳,而不是日期的對象,但我可以找不到有關加號的文檔。

任何人都可以解釋一下嗎?

回答

-2

這不正是同樣的事情:

 
function(){ return 0+new Date; } 

具有相同的結果:

 
function(){ return new Date().getTime(); } 
+11

不在0+新日期。首先將日期轉換爲字符串,然後預先設置「0」(例如:「0Tue Oct 21 2008 20:38:05 GMT-0400」); – 2008-10-22 00:40:25

+2

1 *新的日期將會,但是1 +新的日期 - >字符串 – 2008-12-03 15:56:55

5

這是關於「一元添加」運算符的specification。希望它可以幫助...

1

JavaScript日期可以寫成一個字符串:

星期四2015年9月10日12時02分54秒GMT + 0530(IST)

或多項:

寫成數字的日期指定自1970年1月1日00:00:00以來的毫秒數。

回答您的問題,它通過在賦值運算符'='後面加上'+',將Date轉換爲相等的數值。使用Number()函數(如Number(new Date()))可以實現相同的效果;

var date = +new Date(); //same as 'var date =number(new Date());' 
1

這是一個一元加操作,也可用於明確的數轉換,所以當你調用+new Date(),它會嘗試使用valueOf()獲取該對象的數值就像我們從toString()

得到的字符串
new Date().valueOf() == (+new Date) // true