在 JavaScript 的 ES10(ECMAScript 2019)中,新增了一个全局对象 BigInt,用于支持更大范围的整数计算。在此之前,JavaScript 只能处理 53 位以内的整数,而在 BigInt 出现后,可以支持更高精度的整数计算,甚至可以处理超过 253 的整数。
BigInt 的基本使用
在 JavaScript 中,可以使用 BigInt()
函数来创建一个 BigInt 类型的数值。例如:
const num = BigInt(12345678901234567890); console.log(num); // 12345678901234567890n
需要注意的是,在数字后面加上 n
后缀,可以将其转换为 BigInt 类型。如果不加后缀,则会被解释为普通的 Number 类型。
BigInt 的运算
在 BigInt 中,支持常见的数学运算,包括加、减、乘、除和取模。例如:
const a = BigInt(12345678901234567890); const b = BigInt(98765432109876543210); console.log(a + b); // 111111111111111111100n console.log(a - b); // -86419753208641975320n console.log(a * b); // 1219326311370217957800417089234192650n console.log(a / b); // 0n console.log(a % b); // 12345678901234567890n
需要注意的是,在进行运算时,两个操作数必须都是 BigInt 类型的数值,而不能与普通的 Number 类型相混淆。
BigInt 的比较
在 BigInt 中,支持比较运算符 >、<、>=、<=、==、!=
。例如:
// javascriptcn.com 代码示例 const a = BigInt(12345678901234567890); const b = BigInt(98765432109876543210); console.log(a > b); // false console.log(a < b); // true console.log(a >= b); // false console.log(a <= b); // true console.log(a == b); // false console.log(a != b); // true
需要注意的是,在进行比较时,两个操作数必须都是 BigInt 类型的数值,而不能与普通的 Number 类型相混淆。
BigInt 的位运算
在 BigInt 中,支持位运算符 &、|、^、<<、>>、>>>
。例如:
// javascriptcn.com 代码示例 const a = BigInt(12345678901234567890); const b = BigInt(98765432109876543210); console.log(a & b); // 12345678901234560000n console.log(a | b); // 98765432109876545578n console.log(a ^ b); // 98753186430958505578n console.log(a << 10); // 12676506002282203136000n console.log(a >> 10); // 12064262038809616607n console.log(a >>> 10);// 12064262038809616607n
需要注意的是,在进行位运算时,两个操作数必须都是 BigInt 类型的数值,而不能与普通的 Number 类型相混淆。
BigInt 的应用场景
BigInt 更适用于需要处理大整数的场景,例如加密算法、数字签名等。在这些场景下,需要使用更高精度的整数计算,而普通的 Number 类型无法满足要求。
总结
在 JavaScript 的 ES10 中,新增了一个全局对象 BigInt,用于支持更大范围的整数计算。在使用 BigInt 时,需要注意操作数必须都是 BigInt 类型的数值,而不能与普通的 Number 类型相混淆。BigInt 更适用于处理大整数的场景,例如加密算法、数字签名等。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6562aea2d2f5e1655dc7e6f1