Safari - SyntaxError:无法两次声明let变量

Jak*_*ake 5 javascript safari google-chrome ecmascript-6

这是我以前从未见过的错误.

这是一个简单的复制品:https://jsfiddle.net/jakelauer/qr0ysmst/3/

const x = myVar => {

  console.log(myVar);

  for(let myVar of [1,2,3]){
    console.log(myVar);
  }

};

x(10);
Run Code Online (Sandbox Code Playgroud)

输出在Chrome: ,10,,1 在Safari浏览器输出:23
SyntaxError: Cannot declare a let variable twice: 'myVar'.

想法?这是Safari中的错误吗?

编辑 - 值得注意的是,我不会故意这样做.我注意到它是因为我使用ASP.NET捆绑和缩小系统,并且该系统执行了此操作(因此我的网站在Safari中断了)

编辑2 - 有趣的是,这适用于两种浏览器

let x = 10;

for(let x of [1,2,3])
{
    console.log(x);
}
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/jakelauer/aw37pd2s/1/

Jak*_*ake 5

看起来这是一个 Safari 错误。我提交了一个错误报告。

  • @yalpertem 我的解决方法是对有问题的地方使用“var”而不是 let ,或者只是重命名其中一个变量来避免它。 (2认同)