【问题标题】:Const must be initialized error in Microsoft Edge in for...of loopMicrosoft Edge 中 for...of 循环中的 Const must be initialized 错误
【发布时间】:2016-06-13 21:47:25
【问题描述】:

我正在使用 const 和 JavaScript 的新 for of 循环结构。它在 Chrome 中运行良好,但在 MS Edge 中,以下代码会引发错误:

for(const a of [1, 2, 3])
    console.log(a);

错误:必须初始化常量

再次,在 chrome 中工作正常,边缘抛出错误。我猜它期望 const 变量有一个初始化值,但这就是 for 的全部工作,不是吗?

MDN 说 edge 支持循环,所以浏览器支持不是问题。

【问题讨论】:

  • 这是完全有效的 ES2015 代码,所以我认为应该归咎于浏览器。
  • 是的,我想这是一种无证行为。
  • const 对于 JavaScript 来说相对较新。我同意 zerkms。

标签: javascript for-loop microsoft-edge


【解决方案1】:

根据https://kangax.github.io/compat-table/es6,“const in for-of 循环迭代范围”在 IE 和 Edge 中不支持,直到版本 14。这与 let btw 相同。基本的for of 循环和基本的const/let 用法确实有效。 MDN 并不是最准确的浏览器支持来源。

【讨论】:

  • 有什么 polyfill 可以解决这个问题吗?
  • @mirik 不,你不能 polyfill 语法。你需要一个转译器。
猜你喜欢
  • 2021-09-27
  • 2018-10-31
  • 2023-01-04
  • 1970-01-01
  • 1970-01-01
  • 2020-12-23
  • 2020-09-19
  • 2020-07-10
  • 2017-12-31
相关资源
最近更新 更多