如果 Date.now() 大于 Number.MAX_SAFE_INTEGER 会怎样?

What happens if Date.now () is greater than Number.MAX_SAFE_INTEGER?

当然又过了 20 万年才发生。但是Date.now()的值超过Number.MAX_SAFE_INTEGER的值后,Javascript约会系统会报错吗?会产生什么后果?

也许这个问题看起来很奇怪而且毫无用处。但是谁能回答我的好奇心以及其他可能有相同问题的人。

ECMA-262 排除了您描述的内容。 Date.now is ±8.64e15, which is well within the range of integers safely supported ECMAScript 可以返回的最大值。

最大值可以表示纪元(1970 年 1 月 1 日)两侧的 1e9 天,因此范围约为 ±273,790 年。我认为会有时间在问题出现之前解决它。

构造最大值的日期 returns +275760-09-13T00:00:00.000Z 的日期。向时间值添加一毫秒 returns 无效日期:

// Max value returnable by Date.now
let maxDateNowValue = 8.64e15;

console.log(new Date(maxDateNowValue).toISOString()); // +275760-09-13T00:00:00.000Z

// Max value plus 1 millisecond
let plusOneMS = maxDateNowValue + 1;

console.log(new Date(plusOneMS).toString()); // Invalid Date