BigInt——JavaScript超出安全整数限制时的计算
目前不支持Safari及IE
在JavaScript中,Number
能表示的最大数字为 ±253 - 1
1 | const max = Number.MAX_SAFE_INTEGER // => 9007199254740991 |
如果要做超出此范围的计算,则可能会导致意想不到的结果
1 | const max = Number.MAX_SAFE_INTEGER; |
BigInt
BigInt
是一个内置的对象,用来表示比Number.MAX_SAFE_INTEGER更大的整数
通过使用BigInt
,即使超出Number
的安全整数限制,也可以安全地存储和操作大整数
在一个数字字面量后面添加n
或者直接调用BigInt()
都可以创建一个BigInt
1 | const bignum1 = 1n; |
BigInt()
不是构造函数,不需要使用new
相关操作
两个BigInt
之间可以使用加减乘除以及位运算等运算符,但BigInt
和Number
之间则不行
1 | 1n + 1n // => 2n |
1 | 1n + 1 |
相同数值的BigInt
和Number
并不严格相等
1 | 1n === 1 // => false |
BigInt
和Number
可以比较大小
1 | 1n > 2 // => false |