2015-10-05 71 views
3

Google Analytics代碼段使用1*new Date()獲取當前時間戳,該時間戳看起來比我預期用於此目的的+new Date()長一個字符,尤其是涉及說明如何徹底縮小GA片段。+新日期()和1 *新日期()之間的差異

我看了一下ES5規範,它看起來像它應該是相同的:一元加適用ToNumber(GetValue(expr))並將其返回,乘適用 ToNumber(GetValue(expr))雙方和它們相乘。

是否有一個JavaScript環境(可能是一些舊的瀏覽器?),它產生不同的結果+new Date()1*new Date()

回答

4

沒有語義上的差異;兩者都將在所有JavaScript實現中返回相同的值。

如已經確定的那樣,這是因爲轉換髮生在[ToNumber],其同樣適用於一元+和中綴*操作數。

這裏假設表達式是完整的,因爲在意外情況下將一元+變成沒有語法錯誤的中綴是很容易的;並且中綴+可能會不期望地導致字符串連接。這幾天我只用Date.now()(ES5,在其他地方擦過),雖然我以前用過(+new Date)

+0

它是。完整表達式是'i [r] .l = 1 * new Date()' – dottedmag