IE11 是否支持 BigInt?

Is there anyway for IE11 to support BigInt?

我试图在 Whosebug 和 google 中寻找在 IE 11 中支持 BigInt 的任何方式的答案。是否有人成功地为 IE(和旧版本的 Safari)添加了对 BigInt 的支持?目前我正在开发一个使用 BigInt 的插件。 运行 IE 中的 outook-addin 抛出 BigInt 未定义错误。

我目前正在看这两个:

https://github.com/GoogleChromeLabs/jsbi

https://github.com/peterolson/BigInteger.js

不,没有。它从来没有计划添加对 Internet Explorer 的支持,并且随着微软很快放弃对 IE 的支持,我认为它不会有任何进展。看看 MDN page for BigInt.

这几乎是一个骗局:

以防万一:

以下是我为使 BigInt 在 IE11 中为我的 Outlook-Addin 工作所做的工作:

  1. Installed/added JSBI Library 进入我的项目。
  2. 添加了一些来自 JSBI-dataviews 的数据视图 polyfill。请看我的评论。
  3. 也基于elk-chat
  4. 的一些修改

希望对大家有所帮助

你可以试试这个 npm 库。在基于 JSBI 的 BigDecimal 的帮助下执行任意算术计算的计算器实用程序。

npm install jsbi-calculator

它在 IE11 中有效。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Jsbi-calculator Test</title>
    <script src="https://cdn.jsdelivr.net/npm/jsbi-calculator/dist/jsbi-calculator-umd.js"></script>
  </head>
  <body></body>
  <script type="text/javascript">
    const expressionOne = "((10 * (24 / ((9 + 3) * (-2)))) + 17) + 5";
    const resultOne = JBC.calculator(expressionOne);
    console.log(resultOne);
    // -> '12'

    const userAgent = navigator.userAgent;
    const isIE11 =
      userAgent.indexOf("Trident") > -1 && userAgent.indexOf("rv:11.0") > -1;
    let max;
    // MAX_SAFE_INTEGER not available in IE11
    max = isIE11 ? "9007199254740991" : String(Number.MAX_SAFE_INTEGER);

    console.log(max);
    // -> '9007199254740991'
    const expressionTwo = max + " + 2";
    const resultTwo = JBC.calculator(expressionTwo);
    console.log(resultTwo);
    // -> '9007199254740993'
  </script>
</html>