ECMAScript 6とは
ECMAScriptとはJavaScriptの言語仕様の名称で、各ブラウザベンダーではこの仕様を元にJavaScriptランタイムへ実装を行っています。
2015年4月現在、策定済みの最新バージョンは5(ES5)ですが、次期バージョンとして仕様策定が進められているものがES 6(コードネーム:harmony)です。
2015年4月14日に最終草案(Rev38 Final Draft)がリリースされました。順調に進めば2015年6月頃には策定が完了して、ECMAScriptの正式な標準仕様として公開される見通しとなっています。
ES6では構文の追加など非常に多くの言語仕様が改善されています。
今からES6で開発するには
すでにES6の一部の機能はChromeやFirefoxで実装されていものも存在しますが、多くの機能や構文はそのままのコードでは現時点(2015年5月現在)の多くのブラウザで動作しません。しかし、本稿で紹介するBabelなどのトランスパイラやpolyfillライブラリを活用することで、今からでもES6の機能を使って開発することは可能です。
大きく分けると2つのタイプのツールが存在します。
タイプ | 特徴 | 代表的なツール |
---|---|---|
polyfill/runtimeライブラリ | ES6の機能をES5でpolyfill実装または実行時にトランスパイル(コード変換)するJavaScriptライブラリ。基本的にscriptタグでライブラリを読み込むだけなので手軽に利用できる。一方、実行時にトランスパイルが発生する場合はその分処理時のオーバーヘッドが大きい |
|
トランスパイラ | ES6をES5のコードへ変換するツール。トランスパイルする作業が必要だが、サポートする機能は多く実行時のオーバーヘッドは少ない |
|
Babelを使う
Babelを使ってES6の開発を行う方法を紹介します。
BabelはNode.js上で動作するツールでES6からES5のトランスパイルを行うことができます。一部の機能についてはpolifillライブラリ(browser-polifill.js)も一緒に使う必要があります。なお、以前は6to5という名称で開発されていました。
Babelを使うためにはNode.js+npmがインストールされた環境が必要です。インストールはnpmコマンドにglobalオプションをつけて実行します。
$ npm install --global babel
これでbabelコマンドが使えるようになりました。
ブラウザからBabelのトランスパイルを実行できるツールも提供されています。簡易的な検証であればこちらを利用するのも良いでしょう。
他にもGruntやgulp、Browserifyなどさまざまなツールと組み合わせて使うことも可能なため、開発環境にあった方法を選択することができます。
本稿ではbabelコマンドを実行する方法で解説します。
執筆時点ではバージョン5.1.13を使ったサンプルです。最新バージョンとは内容が異なる可能性がある点ご了承ください。