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