javascript - 日期前的“+”有什么作用?
问题描述
我从一位已故同事那里找到了一些代码,没有人确定以下Date
对象前面的加号在做什么。
return {
isActive: +new Date(notice.reportedAt) === +this.activeNoticeReportedAt,
...
}
我觉得这是一种应该防止未定义的 JavaScript 技巧,但这只是一个疯狂的猜测。
请不要那activeNoticeReportedAt
已经是一个Date
解决方案
它将它变成一个number
,它以毫秒为单位表示日期的 Unix 时间戳:
> +new Date()
< 1542726854220
在这里使用它的原因是Date
无法使用==
运算符比较对象,因为它只检查对象是否相等,而不是值相等:
> x = new Date("2017-01-01")
> y = new Date("2017-01-01")
> x == y
false
推荐阅读
- reactjs - React:是否可以将事件传递给底层 iframe?
- ios - 如何根据调用其他函数的次数来操作 switch 函数?
- elasticsearch - Elasticsearch 慢查询和高 CPU 使用率
- javascript - 禁用单选按钮检查
- spacevim - 如何向 SpaceVim.d/init.toml 添加转义键序列
- unix - 在没有 mkdir -p 的 Makefile 中创建子目录
- android - Android:获取 JSON 响应
- c - 聚合子对象的隐式初始化
- c++ - 我创建的类似乎错误地设置了它的局部变量
- html - 如何对齐具有不同字体大小的文本部分