【问题标题】:for...of - JavaScript keyword Internet Explorer work-aroundfor...of - JavaScript 关键字 Internet Explorer 解决方法
【发布时间】:2015-09-04 18:05:30
【问题描述】:

我在我的 Javascript 代码中的许多地方都使用了“for...of”,这是一种新技术,是 Javascript 新规范(ECMAScript 2015 (E56) 标准)的一部分。 Chrome、Safari 和 Firefox 支持“for...of”。不过,IE 还不支持这个新功能 (See this link)。支持这 4 种主要浏览器的最佳方法是什么 - 我是恢复到“for in/for 循环”还是使用浏览器嗅探代码,或者是否有更好的方法可以同时使用一些混合“for.. .of”和“for...in”?这里不再重复这个问题:link_here,因为我知道 IE 不支持“for...of”。我正在寻找的是是否有黑客仍然可以使用它并且仍然支持我列出的所有 4 种浏览器?

【问题讨论】:

  • 这是 ES6,不是 E56 :)
  • 你不能 polyfill 新语法,所以支持 IE 的唯一选择是使用常规 for 循环。
  • 您应该考虑使用 ES6 到 ES5 编译器,例如 Babel

标签: javascript performance cross-browser compatibility ecmascript-6


【解决方案1】:

您可以添加Traceur 编译器:

<script src="https://google.github.io/traceur-compiler/bin/traceur.js"></script>
<script src="https://google.github.io/traceur-compiler/src/bootstrap.js"></script>
<script type="module">
for(var n of ['foo', 'bar'])
  alert(n);
</script>

它甚至可以在 IE9 上运行。

【讨论】:

    【解决方案2】:

    如果您想要对“for...of”的向后兼容支持,您唯一的选择是编译器(转译器)。如果你看这里:https://kangax.github.io/compat-table/es6/ 众所周知的编译器,以及它们提供的支持级别,都有很好的记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-18
      • 2011-08-13
      • 2023-03-25
      • 1970-01-01
      • 2013-11-28
      • 1970-01-01
      • 2016-02-19
      相关资源
      最近更新 更多