Mik*_*ail 2 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>
Run Code Online (Sandbox Code Playgroud)
当您在chrome中运行它时,您将在控制台中看到:
Im function 1
Im function 2
Run Code Online (Sandbox Code Playgroud)
但是当你在IE11中运行它时,你会收到一个错误
SCRIPT1003: Expected ':'
JavascriptTest.html (11,10)
Run Code Online (Sandbox Code Playgroud)
据我所知,在ES6中不需要将函数声明为func1,chrome也很满意func2之类的声明
var me = {
func1: function(){
console.log('Im function 1');
},
func2(){
console.log('Im function 2');
}
};
Run Code Online (Sandbox Code Playgroud)
但对于IE11来说这很重要.在服务器端和客户端编写代码时常见错误.我正在寻找一种方法来禁用Chrome中的这种功能,这有可能吗?
您无法在Chrome中停用ES2015 +语言功能,没有.
你可以做的是使用"linter"工具(如ESLint)来检查你的代码,以确保它没有你不想要的东西.例如,那个特定的ecmaVersion设置有一个设置,您可以使用它来控制文件中应该和不应该允许的语法; 大概也有其他人也有.
另一个选择(以及我对自己工作的偏好)是使用新功能,即使我的目标浏览器不支持它们,也可以转回ES5(在我的情况下,使用Babel).这样,即使我必须支持IE,我也能获得新功能的优势.
| 归档时间: |
|
| 查看次数: |
2265 次 |
| 最近记录: |