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