ES10 中的 BigInt 的运算符详解及使用场景

阅读时长 4 分钟读完

在前端开发中,数字计算是不可避免的一个问题,往往我们会用到很大的整型数字。但是传统的 JavaScript 中,整型数字有精度限制,导致我们无法处理超过 Number.MAX_SAFE_INTEGER(2的53次方 - 1)的数字。因此,ES10 引入了 BigInt,支持超长整型数字的运算。

什么是 BigInt?

BigInt(即大整数)是 ES10 中引入的一种新的原始数据类型,用于表示更大范围的整数数据,其大小不受运算精度的限制,可以表示任意大小的整数,也不会出现精度丢失问题。

BigInt 通过在数字后面加上一个 n 或者调用 BigInt() 函数来创建。例如:

BigInt 与普通的数字有以下区别:

  • BigInt 不能与普通数字混合运算。
  • BigInt 不能使用 Math 对象的方法,需要使用 BigInt 对象自带的方法。

BigInt 的运算符

BigInt 算术运算符与普通数字运算符相同,但是有一些细微的区别。

加法:+

BigInt 的加法使用 + 运算符,它与普通数字的加法使用方式相同。例如:

减法:-

BigInt 的减法使用 - 运算符,它与普通数字的减法使用方式相同。例如:

乘法:*

BigInt 的乘法使用 * 运算符,它与普通数字的乘法使用方式相同。例如:

除法:/

BigInt 的除法使用 / 运算符,它与普通数字的除法使用方式相同。例如:

模运算:%

BigInt 的模运算使用 % 运算符,它与普通数字的模运算使用方式相同。例如:

幂运算:**

BigInt 的幂运算使用 ** 运算符,它与普通数字的幂运算使用方式相同。例如:

BigInt 的使用场景

BigInt 可以用于任何需要处理极限数字的场景,例如:

  • 大型整形计算,例如银行、地理测量等场景;
  • 处理加密和哈希算法的结果;
  • 处理单独的 64 位带符号值(普通数字最大值为 2^53 - 1),例如 Unix 时间戳。

总结

ES10 中新增了一个原始数据类型 BigInt,它解决了普通数字无法处理超过 Number.MAX_SAFE_INTEGER(2的53次方 - 1)的数字的问题。BigInt 与普通的数字有所不同,主要是不能混合运算,且不能使用 Math 对象的方法。BigInt 的运算符与普通数字的运算符基本相同,但是需要注意一些细节。BigInt 可以用于任何需要处理极限数字的场景。

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

纠错
反馈