JavaScript 的 BigInts 如何与 ES11 一起使用

什么是 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

使用 WebpackBabel-loader 进行打包。

安装依赖:

--- ------- ---------- ------- ----------- ------------ ----------- -----------------

生成 webpack.config.js 文件:

-------------- - -
  ----- --------------
  ------ -------------
  ------- -
    --------- ------------
  --
  ------- -
    ------ -
      -
        ----- --------
        -------- ---------------
        ---- ---------------
      --
    --
  --
  -------- -
    ----------- --------
  --
--

使用以上配置之后的代码,即可在 ES11 之前的浏览器版本中正常使用 BigInts

结论

BigInts 是一个很好的解决方案,它可以处理需要开发哪些需要操作大整数的复杂功能,并且使用方法也十分简单方便。但 BigInts 与旧的 JavaScript 版本之间的兼容性问题需要注意,需要使用转义等方法进行处理。在实际使用的过程中,需要根据实际情况进行选择和使用。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6735aad10bc820c5824fc7a0