BigInt 数据类型

266 阅读1分钟

javascript的所有数字都保存成64位浮点数,给数值的表示带来了两大限制:

1.数值的精度只能到53个二进制位,相当于16个十进制位,大于这个范围的数,js将无法精确地表示。

2.大于或者等于2的1024次方的数值,js无法表示,会返回Infinity。

\

    // 超过 53 个二进制位的数值,无法保持精度

    Math.pow(2, 53) === Math.pow(2, 53) + 1 // true

\

    // 超过 2 的 1024 次方的数值,无法表示

    Math.pow(2, 1024) // Infinity