日期前面的“ +”有什么作用?

时间:2018-11-20 15:13:14

标签: javascript date

我从一个已故的同事那里找到了一些代码,没有人知道以下Date对象前面的加号在做什么。

return {
  isActive: +new Date(notice.reportedAt) === +this.activeNoticeReportedAt,
  ...
}

我觉得这是应该防止未定义的JavaScript技巧,但这只是一个疯狂的猜测。

请不要因为activeNoticeReportedAt已经是Date

1 个答案:

答案 0 :(得分:4)

将其转换为number,代表日期的Unix时间戳(以毫秒为单位):

> +new Date()
< 1542726854220

在这里使用它的原因是Date对象无法使用==运算符进行比较,因为它仅检查对象相等性,而不检查值相等性:

> x = new Date("2017-01-01")
> y = new Date("2017-01-01")
> x == y
false