javascript - 日期前面的 `+` 有何作用?

标签 javascript date

我从一位已离职的同事那里找到了一些代码,但没有人确定以下 Date 前面的加号是什么。对象正在做的事情。

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

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

请注意activeNoticeReportedAt已经是 Date

最佳答案

它将其转换为一个数字,代表日期的 Unix 时间戳(以毫秒为单位):

> +new Date()
< 1542726854220

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

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

关于javascript - 日期前面的 `+` 有何作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53396011/

相关文章:

javascript - JSONPath :contains filter

javascript - 如何从 jQuery Select Slider 获取值?

javascript - 下面代码的执行顺序以及为什么?

mysql - 在 MySQL 数据库中存储每年可重复的值

javascript - 使用 keith wood 日历将波斯日期转换为 Julian 或 Gregorian

javascript - Spotify 视频背景

javascript - Jquery dotdotdot省略号间距问题

javascript - 如何在 Electron 中获取日期格式 - javascript

php - php中另一种语言中不是今天的日期/月份的名称

ios - DateComponentsFormatter 显示前导零