IE 11、Modernizr 和 SCRIPT1002 语法错误

IE 11, Modernizr and SCRIPT1002 syntax error

我有一个网站使用 Modernizr 检查浏览器是否支持 es6。

我有这个脚本:

 if (Modernizr.es6number) {
        Object.keys(objFiltri).map(key => objGrid_CustomFilter.perQuery[key] = objFiltri[key]);
    } else {
        labelsPrint.map(function (key) { objGrid_CustomFilter.perQuery[key] = objFiltri[key] });
    }

在 IE11 中的代码

Modernizr.es6number

return 错误,但 IE 给我一个错误(SCRIPT1002 语法错误)因为不识别 es6 方法 .map.

我的问题是,如果 IF return FALSE,为什么 IE 通过 TRUE 案例? 我怎样才能避免这种情况?

谢谢!

首先,代码不检查是否支持 ES6,它检查是否支持单个功能。

更重要的是你定义了一个箭头函数,而 IE 不支持箭头函数。整个(!)代码在执行之前被解析。 IE 甚至没有达到检查 Modernizr.es6number.

的地步

您不能使用浏览器不支持的语法。您不能在 IE 11 中使用箭头函数。