ECMAScriptとは
JavaScriptの標準化された仕様です。 「エクマスクリプト」と呼びます。
サポート状況
ECMAScript 6 compatibility tableによれば、以下のようになっています。
- Apple Safari 11.1.2: ES2017までサポート
- ただし古い機能でいくつかサポートされてないものがある。
- Google Chrome 68: ES2018までサポート
- Microsoft Edge 17: ES2016までサポート
- ただしES6で問題あり
- Microsoft Internet Explorer: ES5までサポート
- Mozilla Firefox 61: ES2016までサポート済み(ES2017は1つNoがあった)
ただし以下は例外扱いにしています。
- 末尾再帰の最適化: 機能上は影響ないため。
- SharedArrayBuffer: Spectre脆弱性対策のため。
というわけなので、基本的には以下のようにするのがいいかなと。
- IE11対応: ES5まで
- ただキツいので、コンパイル + polyfill使うのが良さげ
- IE11以外: ES2016 + α