哪些浏览器目前支持JavaScript的“let”关键字?

我正在开发一个应用程序,不必担心Internet Explorer,并且正在研究A +级浏览器中不在Internet Explorer1中的一些function。

我想要玩的这些function之一就是JavaScript的let关键字

我似乎无法得到他们的任何'让'例子工作在Firefox 3.6( 用户代理string:Mozilla的/ 5.0的(Windows; U; Windows NT 5.1的;美国; RV:1.9.2)壁虎/ 20100115 Firefox / 3.6(.NET CLR 3.5.30729))。 我得到SyntaxError: missing ; before statement SyntaxError: missing ; before statement执行let foo = "bar" SyntaxError: missing ; before statement

那么,哪些浏览器支持let关键字呢? (或者我做错了什么?)

这些扩展不是ECMA-Standard,它们仅受Mozilla实施支持。

在浏览器环境中,您应该在script标记中包含JavaScript 版本号以使用它:

 <script type="application/javascript;version=1.7"> var x = 5; var y = 0; let (x = x+10, y = 12) { alert(x+y + "\n"); } alert((x + y) + "\n"); </script> 

Internet Explorer≥11(仅for作用域)完全支持并且在所有当前浏览器( ECMAScript 6兼容性表:let )中完全支持。

Internet Explorer和Opera不支持任何浏览器版本,2.0版本以后的Firefox和3.2以后的Safari。

请参阅Wikipedia上的JavaScript版本表 。

我刚发现你需要定义你是否使用JavaScript 1.7。 所以你的代码将是:

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

截至2017年4月,所有最新的主stream浏览器,如Chrome,Firefox和Edge都支持ES2015(又名“ES6”)。

iOS OS不支持,直到OS 10(例如,OS 9没有)。

一些较旧的浏览器(如IE9-IE11)支持let的早期版本,但支持ES2015定义的语义(特别是与for循环头文件中的声明for )。

过时的浏览器如IE8根本不支持它。

显然, 边缘模式下的Internet Explorer 10支持let ,per JavaScript Version Information

只是一个更新:Chrome现在支持let但只有当你声明"use strict" ; 指示。

从第一次提出这个问题开始就经历了很长时间:ECMAScript 2015(ES6)中引入了“let”和“const”关键字。 在这个令人敬畏的ES6兼容性表中search'let'或'const': https ://kangax.github.io/compat-table/es6/