美文网首页
js数据类型BigInt

js数据类型BigInt

作者: 肥羊猪 | 来源:发表于2021-11-10 17:11 被阅读0次

    BigInt数据类型的目的是比Number数据类型支持的范围更大的整数值。
    BigInt构造函数:

    let z = BigIng("163653091258181994")//163653091258181994n
    

    Number类型只能安全地表示-9007199254740991 (-(2^53-1)) 和9007199254740991(2^53-1)之间的整数
    JS 提供Number.MAX_SAFE_INTEGER常量来表示 最大安全整数,Number.MIN_SAFE_INTEGER常量表示最小安全整数:

    const minInt = Number.MIN_SAFE_INTEGER;
    console.log(minInt);         // → -9007199254740991
    console.log(minInt - 5);     // → -9007199254740996
    // notice how this outputs the same value as above
    console.log(minInt - 4);     // → -9007199254740996
    

    不能使用严格相等运算符将BigInt与常规数字进行比较,因为它们的类型不同:

    console.log(10n === 10);    // → false
    console.log(typeof 10n);    // → bigint
    console.log(typeof 10);     // → number
    

    BigInt操作数一起使用时,算术运算符应该返回BigInt值。因此,除法(/)运算符的结果会自动向下舍入到最接近的整数。例如:

    25 / 10;      // → 2.5
    25n / 10n;    // → 2n
    

    BigInt和Number执行算术计算,首先需要确定应该在哪个类型中执行该操作。为此,只需通过调用Number()或BigInt()来转换操作数:

    BigInt(10) + 10n;    // → 20n
    // or
    10 + Number(10n);    // → 20
    

    Boolean 类型与BigInt类型相遇时,BigInt的处理方式与Number类似,换句话说,只要不是0n,BigInt就被视为truthy的值:

    if (5n) {
        // 这里代码块将被执行
    }
    if (0n) {
        // 这里代码块不会执行
    }
    

    位操作符如|、&、<<、>>和^Bigint的操作方式与Number类似。下面是一些例子

    90 | 115;      // → 123
    90n | 115n;    // → 123n
    90n | 115;     // → TypeError
    

    不能使用NumberBigInt操作数的混合执行算术运算,需要通过显式转换其中的一种类型。 此外,出于兼容性原因,不允许在BigInt上使用一元加号(+)运算符。

    Boolean
    Null
    Undefined
    Number
    BigInt
    String
    Symbol
    Object
    

    相关文章

      网友评论

          本文标题:js数据类型BigInt

          本文链接:https://www.haomeiwen.com/subject/wvhizltx.html