Google Analytics代码段使用1*new Date()
获取当前时间戳,该时间戳似乎比我预期用于此目的的+new Date()
长一个字符,特别是考虑到如何彻底缩小GA代码段是
我查看了ES5规范,它看起来应该是相同的:一元加上应用ToNumber(GetValue(expr))
并返回它,乘法适用
双方ToNumber(GetValue(expr))
并将它们相乘。
是否存在JavaScript环境(可能是某些旧浏览器?),它会为+new Date()
和1*new Date()
产生不同的结果?
答案 0 :(得分:4)
没有语义差异;两者都将在所有JavaScript实现中返回相同的值。
正如已经确定的那样,这是因为转换发生在[ToNumber]中,它同样适用于一元+
和中缀*
操作数。
这假定所显示的表达是完整的,因为它有点容易“不小心”。将一元+
变成一个没有语法错误的中缀;并且中缀+
可能会不合需要地导致字符串连接。这些天我只使用Date.now()
(ES5,在其他地方填充)虽然我曾经使用过(+new Date)
。