这个日期里面的+表示什么?

时间:2012-02-21 08:00:11

标签: javascript date

刚碰到Date.now并想知道 + (新日期)中 + 的含义是什么。

if (!Date.now) {  
  Date.now = function now() {  
    return +(new Date);  
  };  
}  

4 个答案:

答案 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)

一元+运算符类型 - 将其操作数转换为数字,因为它不执行任何其他数学运算,所以它是类型转换为数字的最快方法。这就是它在做什么