Javascript ES5 は辛いし AltJS は変換がだるい。ES6(ES2015) 直書きはダメなの?
Javascript 初心者 + ポンコツ PC の私。去年から続けてた開発は IE11 対応必須のせいで泣く泣く ES5 で頑張ったが、ES5 はやはり書きづらい。かといって AltJS は PC スペック的にキツイ。というわけで ES6 直書きがしたいのだが、現在ではいけるのだろうか。
結論
机上調査レベルだが(IE11 が絡まない世界なら)いける。
- Firefox, Chrome 限定なら問題無い(規格の 98% をサポート)
- Safari 含めても問題無い(98%)
- Edge 含めてもほぼ問題ない(96%)
- IE 11 含めると死亡(11%)
対応状況は ECMAScript 6 compatibility table こちらをチェック。
詳しく
ECMAScript 6 compatibility table
https://kangax.github.io/compat-table/es6/
これ、公式かと思ったら違った。有志なのね。リポジトリは kangax/compat-table: ECMAScript 5/6/7 compatibility tables こちら。
この kangax さん、このブログ によると Facebook のエンジニアさんなのだそう。Star 3000 ついてるし、否定的コメントも無さそうだし、信用して良さそうか。
仕組みとしては、テストコードを動かした上で結果をデータファイル(たとえば data-es6 とか)に記入する感じ。GitHub Pages が動いてるので、リポジトリを更新するだけでサイトも更新される。
w3school の ECMAScript 6
ブラウザ毎の Fully support date が書いてある。引用すると、
- 2016/08 Edge
- 2017/04 Chrome 58
- 2017/05 Firefox 54
とのことだが……ん?Fully?compatibility table では 96% とか 98% までで full(100%) ではないのに?
その他の情報源
- JavaScript - そろそろES6で書いても大丈夫ですか?|teratail
- 「ES6 で直書きしたい」という僕のニーズドンピシャのページ
- ES5 直書き、ES6 直書き、AltJS の違いがピンと来る
- ES2015(ES6) 入門 - Qiita
- 要点がわかりやすい
- 2019/07 今月更新入ってる
- JavaScript界隈の基本的な用語を歴史とともにさらにまとめてみた - Heppoko Binbo Yarou no Newbie Nikki
- 歴史や用語に詳しい
- あと「ブラウザは ES6 と ES5、どっちで書かれているかをどうやって判定している?」の疑問の氷解する
- Ans: 共存できる(というか ES6 が ES5 のスーパーセット)