Javascript严格模式和版本

时间:2015-06-29 11:23:24

标签: javascript

我想在我的代码中使用let。像这样:

"use strict";

var b = 5;
for(let i =0;b > i; i++){
    alert(i);
}

这适用于Chrome和IE。但不是在Firefox中。

将我的代码包含在脚本标记中,并将type属性设置为“application / javascript; version = 1.7”,如下所示:

<script type="application/javascript;version=1.7">

这解决了Firefox中的问题,但打破了Chrome和IE中的代码。 当我执行第一个代码片段时Firefox给出的错误:

  

SyntaxError:let是保留标识符

有没有办法支持所有浏览器?

2 个答案:

答案 0 :(得分:3)

除非您使用代码转换器/转换器将您的js转换为当前广泛支持的代码,否则请避免使用

让我们成为ECMA-262的标准配置,但是在足够多的访问者支持它本地使用它之前需要几年时间。

以下对有基本支持,以下所有内容都会中断:

  1. Chrome 41 +
  2. Gecko 2.0
  3. IE11
  4. Opera 17 +
  5. Safari ??
  6. 上述浏览器此时可能会有不一致的实现,因此最好避免使用它。

    查看babel进行转换。

答案 1 :(得分:1)

在Firefox中尚不支持ES2015(ES6)中定义的内容。它有一个旧版本的let非标准版,并且工作方式略有不同。

目前在所有浏览器中支持它的方法是使用像BabelJS这样的转换器。