【问题标题】:How to disable ES6 features in Chrome如何在 Chrome 中禁用 ES6 功能
【发布时间】:2017-08-28 07:17:49
【问题描述】:

在 Chrome 和所有其他现代浏览器中发现 javascript 的行为非常奇怪且不明显。 假设我们有这样的带有 javascript 的 Html

<html>
<title>
</title>
<body>
    <h1>Hello world!</h1>
    <script type="text/javascript">
        var me = {
            func1: function(){
                console.log('Im function 1');
            },
            func2(){
                console.log('Im function 2');
            }
        };
        me.func1();
        me.func2();

    </script>
</body>

当你在 chrome 中运行它时,你会在控制台中看到:

Im function 1
Im function 2

但是当你在 IE11 中运行时会报错

SCRIPT1003: Expected ':'
JavascriptTest.html (11,10)

据我了解,在 ES6 中不需要将函数声明为 func1,chrome 也对 func2 之类的声明感到满意

var me = {
                func1: function(){
                    console.log('Im function 1');
                },
                func2(){
                    console.log('Im function 2');
                }
            };

但对于 IE11 来说,这很重要。当您在服务器端和客户端编写代码时,这是常见的错误。 我正在寻找一种方法来禁用 chrome 中的此类功能,有可能吗?

【问题讨论】:

  • 最好使用transpiler 像 babel others 将代码从 ES6 转换为较低的代码,其他旧浏览器也可以理解,它会在编译时将您的代码转换为旧的 Javascript 代码(更好) / 运行时间,
  • 这就是为什么在目标浏览器中进行彻底测试很重要的原因。 :-)
  • 这不是一个常见的错误。一个人应该始终了解他/她使用的功能。方法快捷方式是 ES6,developer.mozilla.org/en/docs/Web/JavaScript/Reference/…。不可能做那样的事情。相反,您可以将 linter 合并到您的项目中。当然,这意味着代码应该更有条理,而不仅仅是驻留在内联
  • 100% 同意@DeepakSharma,通过转译器运行你的东西,而不是在 Chrome 中禁用 ES6。我认为这甚至是不可能的,因为那时您必须在 Chrome 中禁用 JS 引擎的功能。
  • @estus:最近我不得不从事一个仅限于 ES5 功能的项目。一旦你从其中解脱出来,非常很难忘记const、箭头函数、方法声明等等,然后编写 ES5 代码。 :-)

标签: javascript google-chrome ecmascript-6 internet-explorer-11


【解决方案1】:

您不能在 Chrome 中禁用 ES2015+ 语言功能,不。

您可以做的是使用“linter”工具(如 ESLint)来检查您的代码,以确保其中没有您不想要的东西。例如,那个特定的有一个ecmaVersion setting,您可以使用它来控制它应该和不应该在您的文件中允许的语法;大概其他人也有。

另一个选择(以及我对自己工作的偏好)是使用新功能,即使我的目标浏览器不支持它们,然后 transpile 回到 ES5(在我的情况下,使用 @ 987654322@)。这样,即使我必须支持 IE,我也能获得新功能的优势。

【讨论】:

  • 没有真正帮助我,但希望对大多数搜索者有用
猜你喜欢
  • 2018-10-25
  • 1970-01-01
  • 2012-10-30
  • 2020-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多