2016-09-25 8 views
1

私は、サーバー上でES6構文を使用し、ブラウザ側で非ES6構文を使用するNode.jsプロジェクトを持っています。私もブラウザでES6の構文を使ってみましたが、iPhoneでウェブサイトにアクセスしたときに問題が発生したので、古いjavascriptの構文に戻しました。ブラウザでES6を使用する理由

GithubのBootstrapのコードから、Bootstrap v4のコードでES6(const、arrow functionsなど)を使用することができます。

使用しているすべてのブラウザでサポートされるまで、ES6構文を使用しないようにするのは賢明ですか?私は、常に新しい構文をサポートしていないブラウザがいくつか存在することを前提としています。だから誰も新しい構文に移行するのはなぜでしょうか?私はそれが非常に少ないことを知っていますが、ES6で可能なことはすべてES6なしでも可能ですので、私のウェブサイトで潜在的な顧客を失うコストのために新しい構文を使用する価値があるとは思われません。

私の訪問者のブラウザがすべてES6をサポートしていることを確認できるスクリプトがありますか?

+0

'私は、新しい構文' ermをサポートしていないブラウザがいくつか存在すると考えています。IEがまだ存在するWeb開発を歓迎します。 ES6の構文が心配ですか?さて、ES5をサポートしていないIE8はどうでしょうか?ES5の使用をやめるべきかどうかJavaScriptの使用を中止する必要があるのでしょうか?ああ、IE6はHTMLとCSSの一部をサポートしていません。 ES6は、実際にはサポートの面で新しいものではありません。レガシーブラウザを気にしない場合はそれを使用してください。 – vlaz

+1

ES6を使用すると、コードの可読性と保守性が向上します。特に矢印機能では、 'var = this;'回避策を避けることができます。ブラウザの場合は、展開プロセスにトランスペイラを追加し、使用するes6の機能に注意する必要があります。'yield'、' async'、 'await'、および継承のいずれかを使用します。これは、コードが増えたり、古いブラウザーに多くのポリフィルを含める必要があるためです。しかし、使用するES6機能を賢明に選択すると、コードをきれいに保つためには良いことです。 –

+0

_ "でもES6で可能なことはすべてES6なしでも可能です" _それは当てはまりません。 – zeroflagL

答えて

3

使用されているすべてのブラウザでサポートされるまで、ES6構文を使用しないようにするのは賢明ですか?

実際はありません。たとえば、babel(これは、ブートストラップv4を例として挙げると、also doesとなります)を使って、それを分かりやすくすることができます。

現実的なJSランタイムを使用していることが保証されていても、実際にはnot-yet-even-quite-standardised language featuresを使用することができます。重要なのは、ユーザーの目に見える新しい機能ではなく、ES6でさまざまな方法で向上させるプログラマの生産性です。

ブラウザの意図したコードをバベルfor instance in this blog postでトランスペアリングする方法の明確な説明があります。

ES6で可能なことはすべてES6なしでも可能ですから、私のウェブサイトで潜在的な顧客を失うコストのために新しい構文を使う価値はあるのでしょうか。

あなたが特定のJS実行環境(例えば、ハイブリッドWebブラウザ/デスクトップ、または既知のバージョンに基づいたモバイルアプリ)に対して書いていることが分かっているのでなければ、 WebKit/JavaScriptCore)。

プラットフォームの相違を隠す抽象化を使用することは、現代的なすべてのブラウザ、特に(これに限定されない)古いバージョンのIEに現在存在する多くのAPIにとって長年必要不可欠であったため、あなたの目的のために、古いブラウザのバージョンが重要です。しかし、あなたは生産性の利点を得ることを止めてはいけません!

関連する問題