如何在 ECMAScript 2021 (ES12) 中使用 BigInt 处理大数字

阅读时长 4 分钟读完

在前端领域,我们经常需要处理大数字,例如加密操作、数字处理等。在 ECMAScript 2015 (ES6) 及之前,我们只能使用 Number 类型来处理数字,其最大安全整数是 2^53-1,超过这个范围会导致精度丢失。但是在 ECMAScript 2021 (ES12) 中,引入了 BigInt 类型,可以安全地处理大数字,有效解决精度丢失问题。

BigInt 类型的使用

BigInt 类型用来表示整数,支持任意精度的整数,并且可以进行基本的数学运算。声明一个 BigInt 变量需要在数字后面加上 n 或者使用 BigInt() 构造函数。

注意,BigInt 类型不能与 Number 类型进行混合运算,需要转换为相同类型之后才能进行运算。

BigInt 类型的常用操作

加、减、乘

BigInt 类型的加、减、乘操作与 Number 类型类似,可以使用加号、减号以及乘号进行运算。

BigInt 类型的除法操作与 Number 类型略有不同,使用 “/” 运算符会返回一个向下取整的 BigInt 类型的值,例如:7n / 2n 的结果是 3n。

需要注意的是,BigInt 类型不能使用除数为 0 的操作,会导致运行时错误。

BigInt 类型的模操作也与 Number 类型略有不同,使用 “%” 运算符进行运算。

进制转换

由于 BigInt 类型可以存储任意大的整数,因此在处理超过 Number 类型限制的数字时十分有用。在 BigInt 类型中,可以使用 toString() 方法将数字转换为不同的进制字符串,也可以使用 BigInt.asUintN() 和 BigInt.asIntN() 方法将 BigInt 类型的数字截取为指定位数的整数。

总结

BigInt 类型是 ECMAScript 2021 引入的一项重要特性,为我们在 JavaScript 中处理大数字时提供了便利。BigInt 类型支持任意精度的整数运算,可以防止精度丢失,同时还有进制转换和截取等实用功能。需要注意,BigInt 类型不能与 Number 类型进行混合运算,需要进行类型转换。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64e5d832f6b2d6eab31538e4

纠错
反馈