什么是 BigInts
BigInts
是在 ECMAScript (JavaScript) 中是还处于实验性阶段的一项功能,目的是处理超出常规数字精度范围的整数计算需求。在 JavaScript 中,数字类型默认为 Number
类型,它的精度最大只能达到 16 个十进制数,超出这个范围就需要使用 BigInts
。
使用 BigInts 可以更好的解决 JavaScript 中整数倍增运算(比如在进行一些复杂算法的时候)和处理大整数计算(比如在加密算法中),手写 BigInts 类的代码实现并不容易,而 BigInts 为我们提供了方便的 API 接口供我们调用。
如何使用 BigInts
在 ES11 (也称作 ECMAScript 2020)中,BigInts 已成为正式的标准化功能,使用 BigInts 的方式也变得相对简单,在 JavaScript 中定义 BigInts 只需在数字后面添加 n
或者使用 BigInt
函数,比如:
----- - - ------------------------------------------ -- -- - ----- - - --------------------------------------------------- -- -- ------ --
在使用 BigInt
时,可以进行常规的数学运算,包括加减乘除、取余和求幂等。
除此之外,BigInts 还提供了一些方便的 API 方法,这些方法和普通数字的方法类似,但将结果转化为 BigInts。
-- --- ----- - - ---- - -- --- -- --- -- ----- ----- - - --------------------------------------------------- ----- - - --------------------------------------------------- ------------------------------ - - ---- -- -- -- ----- -----------------------------------------
兼容性问题
需要注意的是,在 ES11 之前的浏览器版本中,可能不支持 BigInts。可以通过以下两个方法来解决兼容性问题:
使用 babel 转义
通过使用 babel 进行转义,将 ES10 以及 ES11 中新增的语法转义为能够直接在现代浏览器中运行的语法。
安装依赖:
--- ------- ---------- ----------- ---------------------------------------- ---------------------------------------- --------------------------------------- ---------------------------------------- -----------------
配置 .babelrc
文件:
- ---------- - - -------------------- - ---------- -- -- -- ---- -------------- -------- --------- - - - -- ---------- - ------------------------------------------ ------------------------------------------- ------------------------------------------- ------------------------------------------ - -
使用以上配置之后的代码,即可在 ES11 之前的浏览器版本中正常使用 BigInts
。
使用 Webpack 和 Babel-loader
使用 Webpack
和 Babel-loader
进行打包。
安装依赖:
--- ------- ---------- ------- ----------- ------------ ----------- -----------------
生成 webpack.config.js
文件:
-------------- - - ----- -------------- ------ ------------- ------- - --------- ------------ -- ------- - ------ - - ----- -------- -------- --------------- ---- --------------- -- -- -- -------- - ----------- -------- -- --
使用以上配置之后的代码,即可在 ES11 之前的浏览器版本中正常使用 BigInts
。
结论
BigInts
是一个很好的解决方案,它可以处理需要开发哪些需要操作大整数的复杂功能,并且使用方法也十分简单方便。但 BigInts
与旧的 JavaScript 版本之间的兼容性问题需要注意,需要使用转义等方法进行处理。在实际使用的过程中,需要根据实际情况进行选择和使用。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6735aad10bc820c5824fc7a0