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

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

我想玩的这些功能之一是JavaScript的let关键字

我似乎无法让他们的任何'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 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)均提供完全支持。


截至2017年4月:

  • 所有最新的主流浏览器,如Chrome,Firefox和Edge都支持ES2015(又名“ES6”) let关键字。

  • iOS的Safari浏览器不支持let ,直到10 OS(例如,OS 9没有)。

  • 一些较旧的浏览器(例如IE9-IE11)支持let的早期版本,但支持ES2015定义的语义(特别是与for循环头文件中的声明for )。 所以这不是一个语法错误,它确实声明了这个变量,但它并不按照它应该的方式工作。 例如,在正确的实现中,以下日志0,1和2; 在IE9-IE11上,它记录了3,3,3:

     for (let i = 0; i < 3; ++i) {
          setTimeout(function() {
              console.log(i);
           }, i * 100);
      }
     
    链接地址: http://www.djcxy.com/p/1493.html

    上一篇: What browsers currently support JavaScript's 'let' keyword?

    下一篇: Explaining IIFE Inside Loop