我已經看到了這一點做了幾個places什麼是加號「+新日期」
function fn() {
return +new Date;
}
而且我可以看到它返回一個時間戳,而不是日期的對象,但我可以找不到有關加號的文檔。
任何人都可以解釋一下嗎?
我已經看到了這一點做了幾個places什麼是加號「+新日期」
function fn() {
return +new Date;
}
而且我可以看到它返回一個時間戳,而不是日期的對象,但我可以找不到有關加號的文檔。
任何人都可以解釋一下嗎?
這就是+一元運算符,它等同於:
function(){ return Number(new Date); }
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
這不正是同樣的事情:
function(){ return 0+new Date; }
具有相同的結果:
function(){ return new Date().getTime(); }
這是關於「一元添加」運算符的specification。希望它可以幫助...
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());'
這是一個一元加操作,也可用於明確的數轉換,所以當你調用+new Date()
,它會嘗試使用valueOf()
獲取該對象的數值就像我們從toString()
new Date().valueOf() == (+new Date) // true
不在0+新日期。首先將日期轉換爲字符串,然後預先設置「0」(例如:「0Tue Oct 21 2008 20:38:05 GMT-0400」); – 2008-10-22 00:40:25
1 *新的日期將會,但是1 +新的日期 - >字符串 – 2008-12-03 15:56:55