BigInt 是一种内置对象,它提供了一种方法来表示大于 2- 1 的整数。这原本是 Javascript中可以用 Number 表示的最大数字。BigInt 可以表示任意大的整数。
const a = 11na // 11nconst b = BigInt(11)b // 11nconst c = BigInt('11');c // 11ntypeof a // bigint11n + 22n // 33n
不能用于 Math 对象中的方法;不能和任何 Number 实例混合运算,两者必须转换成同一种类型。在两种类型来回转换时要小心,因为 BigInt 变量在转换成 Number 变量时可能会丢失精度。
当使用 BigInt 时,带小数的运算会被取整。因为这些变量是 BigInt 而不是 BigDecimal
const expected = 4n / 2n;// ↪ 2nconst rounded = 5n / 2n;// ↪ 2n, not 2.5n
BigInt 和 Number 不是严格相等的,但是宽松相等的。
0n === 0// ↪ false0n == 0// ↪ true
Number 和 BigInt 可以进行比较。
1n < 2// ↪ true2n > 1// ↪ true2 > 2// ↪ false2n > 2// ↪ false2n >= 2// ↪ true
