为什么Firefox在这个JavaScript for循环中抱怨分号?

5

我有一个非常基础的带循环的函数。它在现代的Chrome和Firefox浏览器上运行良好,但是在严格的Firefox 38浏览器上却不行。根据文档,这个函数应该从Firefox 13版本开始就被支持。

function showhide_class(cl) {
  var es = document.getElementsByClassName(cl);
  for(let e of es) {
  e.style.display = (e.style.display == "block") ? "none" : "block";
  }
}

Firefox 报告的确切错误为:
SyntaxError: missing ; after for-loop initializer

那么,为什么会报告这个错误?您知道有解决方法吗?非常感谢。


2
@Delosdos,这是在ECMAScript2015中引入的新的for...of循环。也许它不喜欢for后面缺少空格?文档中还可能存在语法错误,导致出现无效错误。这是您脚本标签中唯一的函数吗? - Jecoms
@Jecoms 啊,是的 - 我猜他的浏览器不支持 for - of,那么他需要一个 polyfill 吗? - Andy-Delosdos
1
应该得到支持。MDN文档。这可能是文档中早期的一个偶发错误,其他浏览器会忽略它,但Firefox不会。 - Jecoms
同样的代码在Windows 8.1上的Firefox 47中运行良好...您需要深入挖掘错误列表,看看是否有FF 38中修复的错误? - Heretic Monkey
1个回答

8

就是这样。如果浏览器错误能够更有帮助的话;). - Jecoms
1
作为一名在公司里工作的人,有些人仍在使用FF 39(当前版本是63),这个答案是非常宝贵的。 - Asa Stallard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接