如何使用新浏览器中提供的扩展JS语法

问题描述 投票:0回答:1

当浏览器支持时,我想编写一个使用新语法(bigint文字42n)的JavaScript函数:

  <script type="text/javascript">
     if (window.BigInt)
        FortyTwo = Function('return 42n;');
     else
        FortyTwo = function () {return 42;};
  </script>

但是documentation说:

注:不建议使用Function构造函数来创建函数,因为它需要将函数主体作为字符串,这可能会阻止某些JS引擎优化,也可能导致其他问题。

我的函数占用大量CPU,因此我不希望由于缺少“某些JS引擎优化”而导致性能损失。我需要一些解决方法。我可以将脚本一分为二(第一个脚本将在旧的浏览器上失败),但是我怀疑这是最好的方法:

  <script type="text/javascript">
     FortyTwo = function () {return 42n;};
  </script>
  <script type="text/javascript">
     if (!window.FortyTwo) FortyTwo = function () {return 42;};
  </script>

包括使用新JS语法的脚本的首选方法是什么?

javascript syntax bigint
1个回答
0
投票

您可以使用webpackbabelcross-browser自动转换所有代码。有一些设置开销,但是您可以这样编写所有代码:

© www.soinside.com 2019 - 2024. All rights reserved.