BigInt 是一种内置对象,它提供了一种方法来表示大于 2- 1 的整数。这原本是 Javascript中可以用 Number 表示的最大数字。BigInt 可以表示任意大的整数。

    1. const a = 11n
    2. a // 11n
    3. const b = BigInt(11)
    4. b // 11n
    5. const c = BigInt('11');
    6. c // 11n
    7. typeof a // bigint
    8. 11n + 22n // 33n

    不能用于 Math 对象中的方法;不能和任何 Number 实例混合运算,两者必须转换成同一种类型。在两种类型来回转换时要小心,因为 BigInt 变量在转换成 Number 变量时可能会丢失精度。

    当使用 BigInt 时,带小数的运算会被取整。因为这些变量是 BigInt 而不是 BigDecimal

    1. const expected = 4n / 2n;
    2. // ↪ 2n
    3. const rounded = 5n / 2n;
    4. // ↪ 2n, not 2.5n

    BigIntNumber 不是严格相等的,但是宽松相等的。

    1. 0n === 0
    2. // ↪ false
    3. 0n == 0
    4. // ↪ true

    NumberBigInt 可以进行比较。

    1. 1n < 2
    2. // ↪ true
    3. 2n > 1
    4. // ↪ true
    5. 2 > 2
    6. // ↪ false
    7. 2n > 2
    8. // ↪ false
    9. 2n >= 2
    10. // ↪ true