javascript-new Date()和1 * new Date()之间的区别
作者:互联网
Google Analytics(分析)代码段使用1 * new Date()来获取当前时间戳,这似乎比我希望用于此目的的new Date()长一个字符,尤其是考虑到GA代码段的最小化.
我看了一下ES5规范,看起来应该一样:一元加适用ToNumber(GetValue(expr))并返回它,乘法适用
ToNumber(GetValue(expr))双方并相乘.
是否有一个JavaScript环境(也许是某些旧的浏览器?)会为new Date()和1 * new Date()产生不同的结果?
解决方法:
没有语义上的区别;在所有JavaScript实现中,两者都将返回相同的值.
正如已经确定的,这是因为转换是通过[ToNumber]进行的,它同样适用于一元和infix *操作数.
假设显示的表达式是完整的,因为“偶然地”将一元代码转换为无语法错误的前缀有些容易;并且infix可能会导致字符串串联.这些天,尽管我曾经使用(新日期),但我只使用Date.now()
(ES5,在其他地方填充).
标签:compatibility,javascript 来源: https://codeday.me/bug/20191027/1947453.html