JavaScriptとECMAScriptの各バージョンとの関係、TypeScriptとECMAScriptの各バージョンとの関係について確認し、まとめています。tscコマンドでTypeScriptをJavaScriptにコンパイルする際、ECMAScriptのバージョンを指定することも出来ます。
※目次をクリックすると目次の下部にコンテンツが表示されます。
JavaScript
・狭義にはMozillaが仕様を策定し実装しているスクリプト言語を指す。
・ECMAScript(ECMA-262)として標準化されており、多くのウェブブラウザ等はこの標準化されたECMAScriptを実装している。
・ECMAScriptは仕様自体に独自の拡張を条件付きで認める記述があり、広義の意味でこれをJavaScriptと呼ぶ場合、主要なブラウザが実装しているスクリプト言語はマイクロソフトやGoogle、アップルの実装も含めてJavaScriptである。
〇JavaScriptのバージョンの履歴
JavaScript の新機能 – JavaScript | MDN
・2010年、FireFox4に実装されたJavaScript1.8.5が最後のバージョン。
・ECMAScript(ECMA-262)として標準化されており、多くのウェブブラウザ等はこの標準化されたECMAScriptを実装している。
・ECMAScriptは仕様自体に独自の拡張を条件付きで認める記述があり、広義の意味でこれをJavaScriptと呼ぶ場合、主要なブラウザが実装しているスクリプト言語はマイクロソフトやGoogle、アップルの実装も含めてJavaScriptである。
〇JavaScriptのバージョンの履歴
JavaScript の新機能 – JavaScript | MDN
・2010年、FireFox4に実装されたJavaScript1.8.5が最後のバージョン。
ECMAScript
・JavaScriptの標準仕様はECMAScriptと呼ばれている。
〇ECMAScript3
・一、二世代前のブラウザも、少なくともECMAScript3はサポートしている。
〇ECMAScript5
・2012年現在、全てのモダンブラウザはECMAScript5.1(2011年の6月に承認)を完全にサポートしている。
〇ECMAScript 2015(ES6)
・2015年6月に策定。
・Mozillaのサポート状況
Mozilla における ECMAScript 6 のサポート – JavaScript | MDN
〇ECMAScript 2016(ES7)
Mozilla における ECMAScript 7 のサポート – JavaScript | MDN
〇ECMAScript3
・一、二世代前のブラウザも、少なくともECMAScript3はサポートしている。
〇ECMAScript5
・2012年現在、全てのモダンブラウザはECMAScript5.1(2011年の6月に承認)を完全にサポートしている。
〇ECMAScript 2015(ES6)
・2015年6月に策定。
・Mozillaのサポート状況
Mozilla における ECMAScript 6 のサポート – JavaScript | MDN
〇ECMAScript 2016(ES7)
Mozilla における ECMAScript 7 のサポート – JavaScript | MDN
TypeScript
・TypeScriptはJavaScriptに対して、省略も可能な静的型付けとクラスベースオブジェクト指向を加えた厳密なスーパーセットとなっている。
・TypeScriptはECMAScript2015の厳密なスーパーセットであり、ECMAScript2015はECMAScript5(一般的にJavaScriptと呼ばれているもの)のスーパーセットであるので、JavaScriptプログラムは有効なTypeScriptプログラムでもあり、TypeScriptプログラムはJavaScriptを境目なしに利用できる。
●言語の特長
・TypeScriptはJavaScript(ECMAScript5)に次のような言語機能の拡張を加えたもの。
○ECMAScript6由来の機能
・クラス
・アロー関数式(ラムダ式)
・オプション引数、デフォルト引数
・let,const
・テンプレート文字列 : 文字列内への変数埋め込み
・モジュール
・for/of
・分割代入
・Symbol
○ECMAScript7由来の機能
・デコレーター
・Async/Await
○TypeScript独自の機能
・型注釈(変数、引数、戻り値などの型宣言)とコンパイル時の型チェック
・型推論、型ガード(if文のinstanceofなどを利用した型推論)
・インタフェース
・列挙型
・Mixin
・ジェネリック
・名前空間
・タプル
・共用体型
・型エイリアス
・TypeScriptはECMAScript2015の厳密なスーパーセットであり、ECMAScript2015はECMAScript5(一般的にJavaScriptと呼ばれているもの)のスーパーセットであるので、JavaScriptプログラムは有効なTypeScriptプログラムでもあり、TypeScriptプログラムはJavaScriptを境目なしに利用できる。
●言語の特長
・TypeScriptはJavaScript(ECMAScript5)に次のような言語機能の拡張を加えたもの。
○ECMAScript6由来の機能
・クラス
・アロー関数式(ラムダ式)
・オプション引数、デフォルト引数
・let,const
・テンプレート文字列 : 文字列内への変数埋め込み
・モジュール
・for/of
・分割代入
・Symbol
○ECMAScript7由来の機能
・デコレーター
・Async/Await
○TypeScript独自の機能
・型注釈(変数、引数、戻り値などの型宣言)とコンパイル時の型チェック
・型推論、型ガード(if文のinstanceofなどを利用した型推論)
・インタフェース
・列挙型
・Mixin
・ジェネリック
・名前空間
・タプル
・共用体型
・型エイリアス