Skip to content

无法预测的大数运算

Code

ts
var START = 2 ** 53;
var END = START + 100;

for (let i = START; i < END; i++) {
  console.log('loop');
}

上面这段代码会输出多少次 loop?

  • A. 99 次
  • B. 100 次
  • C. 报错
  • D. 不可预测

解析

ts
/**
 * 答案:D
 *
 * js存储
 * 符号、指数(1位,二进制只有1)、精度(52位)
 * 最大值, 指数1,精度都是1, 2**53 - 1
 * 超出这个最大值就不确定
 */