在 JavaScript 的新版标准 ES11 中引入了 BigInt 类型,这是一种全新的数据类型,用于表示一个任意大小的整数。在 JavaScript 中,原来的 Number 类型只能准确地表示 -9007199254740991 至 9007199254740991 之间的整数,超过这个范围的整数就会失去精度,无法准确表示。
BigInt 类型的引入,使得 JavaScript 可以准确地表示任意大小的整数,从而解决了之前的精度问题。BigInt 对象还可以支持一些基本的数学操作,例如:加、减、乘、除、取余等。
使用 BigInt 类型
使用 BigInt 类型很简单,只需要在要表示的整数后面加上 "n"。例如:
const x = 123456789012345678901234567890n; console.log(x); // 输出 123456789012345678901234567890n
需要注意的一点是,BigInt 类型的变量在使用时必须要用加上后缀 "n" 的方式声明,否则会被认为是 Number 类型而出现精度损失。
BigInt 类型的数学操作
BigInt 类型的数学操作可以使用与 Number 类型相同的操作符进行计算,例如加号、减号、乘号、除号、取余操作等。例如:
const a = 123456789012345678901234567890n; const b = 987654321098765432109876543210n; console.log(a + b); // 输出 1111111111111111111111111111100n console.log(a - b); // 输出 -864197532086419753208641975320n console.log(a * b); // 输出 121932631137021795886117565406712636687630339273942310824526987087040n console.log(a / b); // 输出 0n console.log(a % b); // 输出 123456789012345678901234567890n
需要注意的是,除法运算会直接把小数舍去,所以结果会变成整数。如果需要保留小数,可以先将 BigInt 类型转换成 Number 类型进行计算,然后再将结果转换回 BigInt 类型。例如:
const a = 123456789012345678901234567890n; const b = 987654321098765432109876543210n; const result = Number(a) / Number(b); console.log(BigInt(Math.floor(result))); // 输出 0n
BigInt 类型的应用场景
在实际开发中,BigInt 类型可以应用于处理需要超出 Number 类型表示范围的整数,例如:加密算法、货币计算、大规模数字处理等。
-- -------------------- ---- ------- -- -- ------ -------- -------- ---------------- - --- --- - --- --- ---- - - -- - - --------------- ---- - --- -- ------------------------------ - ------ ---- - ----- ------- - ------- -------- ------------------------------ -- -- -----
总结
ES11 中引入的 BigInt 类型允许 JavaScript 开发者处理超出 Number 范围的整数,该类型与 Number 类型相应的数学操作符兼容。在实际场景中,BigInt 类型可应用于大规模数字处理、货币计算以及加密算法等领域。在使用 BigInt 类型时需要注意,必须在整数后面加上 "n" 后缀,否则会被认为是 Number 类型而失去精度。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6503fdc195b1f8cacd0bbe62