美文网首页
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