私はここでバベルの重要性を理解するのに苦労しています...だからES6が来て、太い矢印の機能、短い構文などを与えます。なぜES6を伝統的なJSにコンパイルする必要がありますか?新しいJS構文を解釈できない古いブラウザがあるからですか?あるいは、ソースコードの整合性を保つことと何か関係がありますか?私が知っているノブの質問のビット - しかしねえ、私はノブです! 洞察力は高く評価されました!Babel JSが必要なのはなぜですか?
答えて
すべてのブラウザがES6をサポートしているわけではありません。 Reactのような蒸散物と一緒に。
あなたは正しいです。 es6をサポートしていない/サポートしていないブラウザがたくさんあるので、今後も伝統的なjsを解釈する必要があります。 特に、お客様のウェブサイトがIE6ブラウザで動作しないと不満を表明している場合
ここでの回答はすべて正しいものですが、BabelはES6(ES2015)だけではありません。 ECMA標準化委員会は、毎年JavaScript言語の更新をリリースすることに合意しました。 Babelは常に標準を統合しますが、すべてのブラウザが対応するかどうかはわかりませんが、そうであれば、変化する標準に追いつくことができるかどうかはわかりません。
Babelのようなトランスファーを使用すると、ブラウザメーカーが機能を統合したり、ポリフィルなどを使用したりするのを待つのではなく、Webブラウザより先に進んでECMAscriptの新機能を使用できます。エンドユーザーは、使用する機能をカスタマイズして、独自の言語バージョンを構築することもできます。
Babelの作成者がこれについて話すのを聞くには、this JavaScript Jabber episodeを聞くことができます。
おかげさまでライアン。先日私はその車の中のそのエピソードの一部を聞いた...若いオーストラリア人のように:) – ngboverflow
恐ろしい!私は昨年、バベルがそれを使うことを学んだ。私にとって、JavaScriptは新しい機能を備えたまったく新しい言語です。私たちは非同期を待っています、例えば、私の意見では、長い間コールバックを書いてきた人のための絶対的なゲームチェンジャーです。それはコードをより理解しやすくしてくれます。理解できるコードは保守可能なコードと同じです。 Babelは完全に素晴らしいです。私はそれをあなたのツールチェーンの一部にすることを完全にお勧めします。 –
これらのすべての実験プラグインとステージ0プリセットでは、ほとんどの人はリリース前でも最新の機能を使用しています。 (たとえば、ES6またはES7の一部ではないasync/awaitなど)。 – Bergi
私の経験ではバベルを使用する正当な理由はありません。 Typescriptはあらゆる点で優れています。
今日のほとんどのブラウザでは、今日ほとんどほぼ完全にサポートされています。 96%から99%のサポート。
https://kangax.github.io/compat-table/es6/
不足している主なものは、ES6モジュールです。現在、SafariのみがES6モジュールをサポートしています。 ES6モジュールのサポートがGoogle Chrome 60に届くはずです。
実行するには、BrowserifyやWebpackのようなバンドラを使用してES6コードモジュールを1つのJavaScriptファイルに結合する必要があります。バンドルのためにWebpack 3.0を使用することに恵まれました。
Babelは新しい言語機能を古いものに変換する責任があります。
多くのブラウザで実行できるコードは、バンドルラーだけで、Babelは使用しないで書くことができます。あなたはコードをBabelと一緒に翻訳することにより、より複雑になりますので、必要な場合にのみこれを行うべきです。
- 1. JSでプロミスが必要なのはなぜですか
- 2. reactjsにbrowser.min.jsが必要なのはなぜですか?
- 3. PEにはオリジナルファーストサンク(OFT)が必要なのはなぜですか?
- 4. コードファーストクラスにはナビゲーションプロパティが必要なのはなぜですか?
- 5. ここでエンディアンが必要なのはなぜですか?
- 6. Dockerでベースイメージが必要なのはなぜですか?
- 7. Railsでattr_accessorが必要なのはなぜですか?
- 8. JavaでPropertiesクラスが必要なのはなぜですか?
- 9. JavaでString [] argsが必要なのはなぜですか?
- 10. lexでルールが必要なのはなぜですか?
- 11. ここでコンテキストが必要なのはなぜですか?
- 12. F#関数でカッコが必要なのはなぜですか?
- 13. ここでキャストが必要なのはなぜですか?
- 14. C++ 11でweak_ptrが必要なのはなぜですか?
- 15. ここでtypenameが必要なのはなぜですか?
- 16. Pythonで「finally」節が必要なのはなぜですか?
- 17. Fluxでディスパッチャが必要なのはなぜですか?
- 18. Redexで評価コンテキストが必要なのはなぜですか?
- 19. selectステートメントでINTO句が必要なのはなぜですか?
- 20. ここでロックが必要なのはなぜですか?
- 21. MFCでランタイムクラス情報が必要なのはなぜですか?
- 22. コントローラでInit関数が必要なのはなぜですか?
- 23. Ford-Fulkersonアルゴリズムでバックエッジが必要なのはなぜですか?
- 24. FiddlerでHTTP CONNECTトンネルが必要なのはなぜですか?
- 25. Pythonでコルーチンが必要なのはなぜですか?
- 26. なぜ必要なのですか$ = jQuery
- 27. なぜDataBind()メソッドが必要ですか?
- 28. なぜバイナリコードコンバータが必要ですか?
- 29. なぜReaderLockが必要ですか?
- 30. なぜnp.squeeze()が必要ですか?
はい、すべてがES6をサポートしているわけではないためです。また、ReactやJSXを使用している場合は、それを簡潔にするためにバベルが存在する必要があります。 – Li357
私はいつかES6が公式になると思うが、今日はそれ以外の方法では動作しないウェブサイトがたくさんあるので、今日は新しい標準に変更するのは本当に難しい。ブラウザを開発している人は、コードが更新されていなくてもすべてのWebサイトにアクセスできるように、es6とes5を読み込むようなものを作成する必要があります。私たちはそれがどうなるかを見るでしょう:) そして、私は実際には推測しています。 –
@DawidZbińskiES6はすでに公式です。古いスクリプトについては何も複雑ではなく、新しい標準は下位互換性があり、すべてのES5も有効なES6です。 – Bergi