「let」キーワードの最良の使い方がわかりません...
<script type="application/javascript;version=1.7"/>
内でのみ機能しますが、このスクリプトタイプは、IE11、Chrome45、Safari8ではJavascriptとしても認識されません。これが実際の動作を示すJSFiddleです: https://jsfiddle.net/p6cgtyg6/1/
つまり、ユーザーに最新バージョンのブラウザの使用を要求してもかまいません。
そして、正直なところ、このキーワードをサポートするSafariのバージョンがない場合は、Safariを除外してもかまいません。 (それは本当に本当ですか?SafariがES6の観点から非常に悪いように見えるのに、なぜ誰もがIE)について把握することにすべての時間を費やすのですか?私は何かを逃したことがありますか?).
しかし、Chrome/IEを妨げずに、Firefoxで「let」を機能させるにはどうすればよいですか? (FirefoxスクリプトタグがChromeとどのように異なるかについて不満を持っている人々からのリンクはまだ見つかりません。さらに多くの苦情が予想されたので、明らかな何かを見逃したに違いないと思います...)
Safari 8に関しては、それはただ サポートされていません ;そのブラウザでは、 Babel を使用することをお勧めします。
このバグ はすぐには修正されない*と直感している場合は、Firefoxを検出するスクリプトを作成して、type属性に適切な値をスクリプトに挿入することができます。 。
ちなみに、 このトランスパイラー -を使用したい場合を除いて、letブロックを使用しないことをお勧めします。 ドロップされる の式も使用しないでください。
* Firefox44で修正
let
はECMAScript6仕様の一部であり、ECMAScript6自体は「ドラフト」ステータスです。不完全な形式であっても、その機能は実際のブラウザバージョンでは完全にはサポートされていません。
今日ES6に飛び込んで本番環境に移行したいので、最善の策はES6からES5へのトランスパイラーを使用することです。最も顕著なものは Babel と Traceur で、両方のCLIとして使用できます。選択したビルドシステムのパッケージ。 Babel および Traceur を試すためのオンラインツールがあります。そして Scratch JS 拡張機能ChromeはBabelとTraceurの両方を使用し、ビルドシステムがオプションでない場合、ES6スクリプトの開発とコンパイルに最適です。
これが 最新の比較表 で、ブラウザとES6コンパイラの両方でES6機能のサポートが含まれています。
そしてここに 素晴らしいコレクション ES6関連のツールがあります。
このES6キーワードのブラウザの互換性を参照してください。