编程语言
首页 > 编程语言> > javascript-new Date()和1 * new Date()之间的区别

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