刚碰到Date.now并想知道 + (新日期)中 + 的含义是什么。
if (!Date.now) {
Date.now = function now() {
return +(new Date);
};
}
答案 0 :(得分:2)
这是unary plus operator。它将其操作数转换为数字。来自MDN:
一元加号运算符在其操作数之前,并计算其值 操作数但尝试将其转换为数字,如果不是 已经。例如,y = + x取x的值并将其赋值给 Ÿ;也就是说,如果x为3,y将得到值3,x将保留 价值3;但如果x是字符串“3”,y也会获得该值 3。
在这种情况下,由于操作数是一个日期,因此该数字将是自1970年1月1日午夜起的毫秒数。
它实际上与写作相同:
Number(new Date());
答案 1 :(得分:2)
将日期转换为数字。
作为数字的日期是自1970年1月1日以来的毫秒数(也称为Unix时间)。当然,这正是Date.now()
应该返回的内容。
答案 2 :(得分:1)
它只是将日期转换为数字,数字将是从纪元开始的毫秒数。来自ECMAScript规范:
11.4.6一元+操作员
一元+运算符将其操作数转换为数字类型。 生产UnaryExpression:+ UnaryExpression的计算方法如下: 1.评估UnaryExpression。 2.调用GetValue(Result(1))。 3.致电ToNumber(结果(2))。 4.返回结果(3)。
答案 3 :(得分:0)
一元+运算符类型 - 将其操作数转换为数字,因为它不执行任何其他数学运算,所以它是类型转换为数字的最快方法。这就是它在做什么