在 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 中,支持比较运算符 >、<、>=、<=、==、!=
。例如:
-- -------------------- ---- ------- ----- - - ----------------------------- ----- - - ----------------------------- ------------- - --- -- ----- ------------- - --- -- ---- ------------- -- --- -- ----- ------------- -- --- -- ---- ------------- -- --- -- ----- ------------- -- --- -- ----
需要注意的是,在进行比较时,两个操作数必须都是 BigInt 类型的数值,而不能与普通的 Number 类型相混淆。
BigInt 的位运算
在 BigInt 中,支持位运算符 &、|、^、<<、>>、>>>
。例如:
-- -------------------- ---- ------- ----- - - ----------------------------- ----- - - ----------------------------- ------------- - --- -- --------------------- ------------- - --- -- --------------------- ------------- - --- -- --------------------- ------------- -- ---- -- ------------------------ ------------- -- ---- -- --------------------- ------------- --- ------ ---------------------
需要注意的是,在进行位运算时,两个操作数必须都是 BigInt 类型的数值,而不能与普通的 Number 类型相混淆。
BigInt 的应用场景
BigInt 更适用于需要处理大整数的场景,例如加密算法、数字签名等。在这些场景下,需要使用更高精度的整数计算,而普通的 Number 类型无法满足要求。
总结
在 JavaScript 的 ES10 中,新增了一个全局对象 BigInt,用于支持更大范围的整数计算。在使用 BigInt 时,需要注意操作数必须都是 BigInt 类型的数值,而不能与普通的 Number 类型相混淆。BigInt 更适用于处理大整数的场景,例如加密算法、数字签名等。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6562aea2d2f5e1655dc7e6f1