在Safari Javascript中无法使用"let"关键字?

Luc*_*hik 11 javascript safari firefox ecmascript-6

我不明白使用"let"关键字的最佳方式...

  • 在IE11和Chrome45中,我可以使用它
  • 在Safari8.0.4中,与早期版本的Chrome一样,它会出现错误"意外使用保留字'let'"
  • 在Firefox中,let关键字仅适用于内部<script type="application/javascript;version=1.7"/>,但在IE11,Chrome45,Safari8中甚至不会将此脚本类型识别为Javascript.

这是一个JSFiddle,它显示了它的实际效果:https://jsfiddle.net/p6cgtyg6/1/

所以 - 我不介意要求用户使用他们浏览器的现代版本.

如果老实说没有支持这个关键字的Safari版本,我不介意排除Safari.(这是真的吗?为什么每个人都花费所有时间来关注IE,当Safari在ES6条件下看起来更糟糕?我错过了什么?).

但是我应该如何允许"让"在Firefox中工作而不阻止Chrome/IE?(我还没有找到人们关于Firefox脚本标签与Chrome的行为方式不同的链接,我预计会有更多投诉,所以我认为我一定错过了一些明显的东西......)

Knu*_*Knu 6

关于Safari 8,它只是不受支持 ; 对于那个浏览器,我建议使用Babel.

如果你有直觉感觉这个bug不会很快被修复*那么你可以有一个检测Firefox的脚本,然后注入你的脚本,并为type属性注入适当的值.

作为旁注,我建议不要使用let blocks - 除非你想使用这个转换器-nor let表达式将被删除.

*已在Firefox 44中修复