在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中的这种功能,是否可能?
答案 0 :(得分:6)
您无法在Chrome中停用ES2015 +语言功能,编号
你可以做的是使用&#34; linter&#34;工具(如ESLint)检查您的代码,以确保它没有您不想要的东西。例如,该特定的一个ecmaVersion
setting可用于控制文件中应该和不应该允许的语法;大概也有其他人也有。
另一个选项(以及我对自己工作的偏好)是使用新功能,即使我的目标浏览器不支持它们,并且传输回到ES5(在我的情况下,与Babel)。这样,即使我必须支持IE,我也能获得新功能的优势。