JavaScript 奇怪的语法:c.name=i+ +new Date;

5

来自colorpowered.com的colorbox v1.3.15在其压缩代码中有以下JavaScript:

c.name=i+ +new Date;

这似乎运行得很完美,是吗?

2个回答

8

一元运算符+用于通过从对象中调用valueOf()将对象转换为数字。如果没有返回数字,则该操作返回NaN

您可以通过编辑任何对象的valueOf函数来自定义此功能,如下所示:

var foo = {};
foo.valueOf = function () { return 9001; };
console.log(+foo); // 9001

valueOf()方法返回的是getTime()的值(来自Mozilla的解释)。


5

new Date创建一个带有当前日期的Date对象。一元加操作符将其转换为数值,对于Date对象来说,这相当于使用getTime()方法。然后进行简单的加法运算,即将i和该数字值相加。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接