Dav*_*och 72 javascript firefox firefox3.6
我正在开发一个应用程序,不必担心Internet Explorer,并且正在研究A +级浏览器中不存在于Internet Explorer1中的一些功能.
我想要使用的其中一个功能是JavaScript的let关键字
我似乎无法让他们的任何"让"示例在Firefox 3.6中工作(用户代理字符串:Mozilla/5.0(Windows; U; Windows NT 5.1; en-US; rv:1.9.2)Gecko/20100115 Firefox/3.6(.NET CLR 3.5.30729)).我SyntaxError: missing ; before statement
在执行时得到了let foo = "bar"
.
那么,哪些浏览器支持let关键字?(或者我做错了什么?)
CMS*_*CMS 41
编辑:let
并const
得到所有现代浏览器的支持,并且是ECMAScript 2015(ES6)规范的一部分.
基本上如果你不需要支持IE11以下的任何东西,let
并且const
现在可以安全使用.
在IE11上有一个小怪癖,let
当与for
循环一起使用时,变量没有for
像你期望的那样绑定到块上,它表现得像var
......
从2010年开始的旧的和过时的答案: 这些扩展不是ECMA-Standard,只有Mozilla实现才支持它们.
在浏览器环境中,您应该在标记中包含JavaScript 版本号script
以使用它:
<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>
Run Code Online (Sandbox Code Playgroud)
T.J*_*der 28
截至2017年4月:
所有最新的主流浏览器(如Chrome,Firefox和Edge)都支持ES2015(又名"ES6")let
关键字.
iOS let
OS直到OS 10 才支持(例如,OS 9没有).
一些较旧的浏览器,如IE9-IE11,支持早期版本,let
但不支持ES2015定义的语义(特别是与for
循环标题中的声明有关).所以这不是一个语法错误,它确实声明了变量,但它并没有按照预期的方式工作.例如,在正确的实现中,以下日志记录0,1和2; 在IE9-IE11上,它记录了3,3,3:
for (let i = 0; i < 3; ++i) {
setTimeout(function() {
console.log(i);
}, i * 100);
}
Run Code Online (Sandbox Code Playgroud)
诸如IE8之类的过时浏览器根本不支持它.
Har*_*men 12
Internet Explorer和Opera不支持let
任何浏览器版本,Firefox自版本2.0以及Safari自3.2以来.
在维基百科上查看此JavaScript版本表.
我刚刚发现你需要定义是否使用JavaScript 1.7.所以你的代码将是:
<script type="application/javascript;version=1.7"> ... </script>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
37798 次 |
最近记录: |