当浏览器支持时,我想编写一个使用新语法(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语法的脚本的首选方法是什么?
您可以使用webpack,babel和cross-browser自动转换所有代码。有一些设置开销,但是您可以这样编写所有代码: