javascript - 如何在 Chrome 中禁用 ES6 功能

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

发现 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 中的此类功能,这可能吗?

最佳答案

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

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

另一个选择(也是我对自己工作的偏好)是即使我的目标浏览器不支持新功能,也可以使用新功能,并转译回 ES5(在我的例子中,使用 Babel )。这样,即使我必须支持 IE,我也能获得新功能的优势。

关于javascript - 如何在 Chrome 中禁用 ES6 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43184365/

相关文章:

javascript - 如何通过应用过滤器来渲染Reducer?

node.js - Node v13/Jest/ES6 — 原生支持没有 babel 或 esm 的模块

javascript - jQuery 按钮状态激活

javascript - 如何使用数组和 && 条件构建长 If 条件?

javascript - 选择选项时如何自动设置表单中的输入值?

javascript - 检测谷歌浏览器是否阻止 Java 插件

javascript - 显示临时 header 和待处理请求

javascript - 关于使用 YouTube Player API loadPlaylist

javascript - 如何以及如何禁用 Javascript 中的触摸事件?

javascript - 从模块导入解构