最新Javascript(ES6)でモダンプログラミング【ジェネレータ編】

ES6(ES2015)とは

先日策定された、ECMASCriptの6th Editionのことであり、当初はES6と呼ばれているが、正式名称をECMASCript2015(ES2015と呼ばれる)とし、今後は年単位のリリースを予定しているとのこと
[公式サイト]http://www.ecma-international.org/ecma-262/6.0/index.html
引用
:http://qiita.com/tuno-tky/items/74ca595a9232bcbcd727

今回はES6で追加された新しい機能を使って繰り返し処理をやってみようと思います。

 

単純で簡単な方法

一番単純な for文 を使った方法です。

次に forEach を使った書き方です。
さっきのより、シンプルになって見やすいですね!

 

for of

次にES6から追加された for of を使って書いてみます。

書く量はそんなに変わってないですが、何よりわかりやすいですよね。
コードはわかりやすいのが一番です。

 

ジェネレータ

for ofを使って繰り返し処理をする時に
arrayしか使えないというわけではありません。
ジェネレータ関数を利用し自作のイテレータを作成することができます。

ジェネレーター… ?
イテレータ…?

という方は、こちらの記事で詳しく解説されています。
興味のある人は、ぜひ呼んでみることをオススメします。

 

ジェネレータを作ってnext()を実行すると
yieldで一旦処理が止まり、値を返します。
もう一度、yieldを実行すると次の値が返されます。

こうすると、最後のyieldが呼ばれるまで、繰り返します。

 

でも、これだとあんまりスマートな書き方ではないですね。
実際は次のようにジェネレータ関数の中で次の値を計算してyieldで返すのがgoodです。

cool ですね!!!

 

その他

ジェネレータ関数はイテレータとして使うだけでなく、
yieldを使うことで陰萎のタイミングで関数の処理を止めることができるので
他の処理が終わるまで一旦処理をとめたりなどのつかいかたもできるでしょう。
便利な機能なのでぜひ使ってみてくださいね!

参考: