检查基本的 ES6 支持,无需“unsafe-eval”

Ral*_*ahr 6 javascript content-security-policy ecmascript-6

我想知道浏览器是否支持 ECMAScript 6 (ES6)(基本支持就足够了),但我也想使用合理的内容安全策略 (CSP) 标头。到目前为止我拥有的解决方案,请参阅“检查浏览器是否支持 ES6 ”,需要'unsafe-eval'. “ Javascript ES6 跨浏览器检测”的答案中的解决方案也是如此。有什么想法可以解决这个问题吗?

    var supportsES6 = function() {
      try {
        new Function("(a = 0) => a");
        return true;
      }
      catch (err) {
        return false;
      }
    }();
Run Code Online (Sandbox Code Playgroud)

Jib*_*ose -1

我假设您想要检测 es6 支持的原因是决定是否提供 es6 代码或 es5 或显示错误。最简单的方法是使用 es 模块系统

<script type="module" src="script.es6.js"></script>
<script nomodule src="script.es5.js"></script>
Run Code Online (Sandbox Code Playgroud)

支持es6的浏览器会加载script.es6.js并忽略script.es5.js,不支持es6的浏览器会忽略script.es6.js并加载script.es5.js