ECMAScript6 Harmony機能まとめ


そろそろHarmonyの新仕様をちゃんと理解しておかねばと思ったので、調べついでにまとめました。

現在どのブラウザでどのくらい使えるのかはこちらから確認出来ます。

ECMAScript 6 compatibility table

ここに乗っていないものもまだまだありますが、ひとまず気になったもの、主要な物を列挙しました。

Let

letキーワードを使う事により、ブロックスコープが使える様になります。

IE11, Firefox, Chromeと対応している環境も多いですね。

for文中で気にせずガンガン変数が定義できちゃうわけです。

 

Const

constキーワードを使う事により、定数を定義することができます。

今まで変数名を大文字にして定数である事を明示していたりしましたが、代入不可な定数を定義する事が可能になります。

さらにconstはブロックスコープになります。

対応環境が最も多い仕様ですね。

 

Default Function parameters

今までありそうで無かった機能! 関数のデフォルト引数。

今までこいつが無いことで、いちいち関数の頭でa = a || 1とかやって初期化しなきゃいけなかった訳です。

 

Rest Parameters

これまで可変長の引数をとる関数を定義することは多々ありましたが、argumentsを使って引数を判別していました。

rest parametersを使えば、残りの引数を一つの配列にまとめることが出来ます。

Rubyだと*(アスタリスク)を付けることで実現出来るアレです。

 

Class

待ってました、クラス!

やはりなんだかんだ言って、JavaScriptの大きな問題点はクラスが定義できないことだと思っています。

クラス実装が山ほどありすぎるが故に、コーディングパターンが人それぞれ違うことが、JavaScriptコードの保守性・可読性を著しく下げていると考えます。

しかし実際の実装がまだTraceurコンパイラに留まり、ブラウザなどが対応していないことから、まだまだ普及は遠い道のりの様に感じます。。

 

Generators

generator functionはコルーチンを生成する仕組みです。

コルーチン自体僕には馴染みがないのですが、関数を実行して、途中で止まって、そこから再度実行できるという仕組みです。

JavaScriptの遅延処理によるcallback地獄を解決する手段になりそうです。

上記の例で、consoleは以下の様になります。

 

個人的には早くClassが使いたいです。

Generatorも使いこなすと面白そうですね。


Leave a Reply