【问题标题】:semicolon error in javascript for loop in internet explorer 10 and lower version of ieInternet Explorer 10 和更低版本的 ie 中的 javascript for 循环中的分号错误
【发布时间】:2024-04-13 01:40:01
【问题描述】:

大家好,我有一个与 Internet Explorer 10 及旧版本相关的问题,

我的代码在所有浏览器中都能正常运行

(Chrome、Firefox、Internet Explorer 11)

但是当我尝试在 Internet Explorer 10 和 9 中运行它时,我收到了错误

SCRIPT1004:预期为 ';'google.map.js (1270,14)

在那条特定的行上我有一个 for 循环

for (let i = 0; i < Markers.length; i++) {

还有我的全部功能

function clearMarker() {
    for (let i = 0; i < Markers.length; i++) {
        Markers[i].setMap(null);
    }
    Markers = new Array();
}

我不明白为什么我的控制台会出现这个错误。这在其他浏览器中运行良好,

是否与ie 10及以下的兼容性有关?

【问题讨论】:

  • let 在 IE10 中不受支持。在 IE 中,它首先在 IE11 中引入,但没有创建块作用域。
  • let 更改为var ... for (var i = 0; i &lt; Markers.length; i++) {
  • 你是在node环境下工作还是直接在html/js文件中写代码?
  • 您可以在此处查看浏览器支持。 caniuse.com/#search=let 。从 URL 可以看出,IE 11 是部分支持let 的最低版本。所以你应该改用var
  • 我正在使用 mvc @AseemUpadhyay 开发 jquery

标签: javascript internet-explorer-10


【解决方案1】:

letconst 在 IE 10 或更低版本中无效,更糟糕的是,它们在 IE 11 中无法正常工作!你不应该使用它们。您应该将let 更改为var

您可以在Can I use 找到更多信息,了解哪些浏览器将支持它或MDN article on let

【讨论】:

  • 我还建议使用类似 babel 的东西将 ES6 脚本转换为“常规”JS。
  • 这超出了这个问题的范围