当然又花了20万年才发生。但是,会不会出现这样的情况呢?Javascript 约会系统错误后的值 Date.now()
的值,超过 Number.MAX_SAFE_INTEGER
? 会出现什么后果?
也许这个问题看起来很奇怪,也很无用。但有谁能回答我的好奇心,以及其他可能有同样问题的人。
你所描述的情况被ECMA-262排除了。可以由Date.now()返回的最大值是 Date.now 是±8.64e15,这完全可以在 安全支持的整数范围 由ECMAScript计算。
最大值可以代表纪元(1970年1月1日)两边的1e9天,所以范围约为±273,790年。我想在问题出现之前,会有时间来解决这个问题。
构造最大值的日期,返回的日期为+275760-09-13T00:00:00.000Z。在时间值上加一毫秒,返回的是无效日期。
// 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