+ new Date()和1 * new Date()

时间:2015-10-05 18:12:28

标签: javascript compatibility

Google Analytics代码段使用1*new Date()获取当前时间戳,该时间戳似乎比我预期用于此目的的+new Date()长一个字符,特别是考虑到如何彻底缩小GA代码段是

我查看了ES5规范,它看起来应该是相同的:一元加上应用ToNumber(GetValue(expr))并返回它,乘法适用 双方ToNumber(GetValue(expr))并将它们相乘。

是否存在JavaScript环境(可能是某些旧浏览器?),它会为+new Date()1*new Date()产生不同的结果?

1 个答案:

答案 0 :(得分:4)

没有语义差异;两者都将在所有JavaScript实现中返回相同的值。

正如已经确定的那样,这是因为转换发生在[ToNumber]中,它同样适用于一元+和中缀*操作数。

这假定所显示的表达是完整的,因为它有点容易“不小心”。将一元+变成一个没有语法错误的中缀;并且中缀+可能会不合需要地导致字符串连接。这些天我只使用Date.now()(ES5,在其他地方填充)虽然我曾经使用过(+new Date)