2022年3月19日 [ES2015] ECMAScript (JavaScript Primer)
第一章の最後の章では、ECMAScriptの仕様についてまとめられていました。 この章ではリテラシーの向上と、それを高める手段を知れたという印象です。
- ECMAScriptはEcma Internationalという団体によって標準化されている仕様です。
- Microsoft、Mozilla、Google、Appleといった企業が技術委員会となって仕様について議論されています。
- バージョンのリリースが年ごとに行われるようになりました。
- Living Standardという仕様で最新の仕様はGitHub上で管理されています。
ECMAScriptのバージョンの歴史
バージョン | リリース期間 |
---|---|
1 | 1997年6月 |
2 | 1998年6月 |
3 | 1999年12月 |
4 | 破棄 |
5 | 2009年12月 |
5.1 | 2011年6月 |
2015 | 2015年6月 |
2016 | 2016年6月 |
2017 | 2017年6月 |
以下毎年リリース |
単語メモ
・プロポーザル方式
主に業務の委託先や建築物の設計者を選定する際に、複数の者に目的物に対する企画を提案してもらい、その中から優れた提案を行った者を選定する方式です。
・エミュレート(emulate)
ある装置がそれとは異なる別のハードウェアやソフトウェアの環境を真似することをいう。 エミュレートは、模倣することである。
・Transpile
ある言語のコードを元に別の言語や別のバージョンの言語のファイルを生成すること
・polyfilling
ブラウザでみ対応のAPIに変わる機能を提供する小さなライブラリのこと
・babel(バベル)
JavaScriptのコードを新しい書き方から古い書き方に変換するツールである。具体的には、JavaScriptの言語仕様であるES2015以上の仕様のJavaScriptで記述すると、Internet Explorer11といった古いブラウザでは動作しない。そこで、Babelを使ってES2015・ES2016といった仕様で記述したJavaScriptファイルを互換性のあるEXMAScript5に変換する。
・Living Standard
バージョン番号をつけずに、常に最新版を公開する仕様のことです。
仕様策定のプロセス
仕様に追加する機能(API、構文など)をそれぞれ個別のプロポーザル(提案書)として進めていきます。 現在策定中のプロポーザルはGitHub上のtc39/proposalsに一覧が公開されています。 それぞれのプロポーザルは責任者であるチャンピオンとステージ(Stage)と呼ばれる0から4の5段階の状態を持ちます。
ステージ | ステージの概要 |
---|---|
0 | アイデアの段階 |
1 | 機能提案の段階 |
2 | 機能の仕様書ドラフトを作成した段階 |
3 | 仕様としては完成しており、ブラウザの実装やフィードバックを求める段階 |
4 | 仕様策定が完了し、2つ以上の実装が存在している 正式にECMAScriptにマージできる段階 |
仕様や策定プロセスを知る意味
言語を学ぶため?
もっとも単純な理由はJavaScriptという言語そのものを学ぶためです。 言語の詳細を知りたい場合にはECMAScriptという仕様を参照できます。
しかしながら、JavaScriptの言語機能に関してはMDN Web Docsという優れたリファレンスサイトなどがあります。 そのため、使い方を覚えたいなどの範囲ではECMAScriptの仕様そのものを参照する機会は少ないでしょう。
まとめ
JavaScriptと一言に言ってもECMAScript、ウェブブラウザ、Node.js、WebAssembly、WebGL、WebRTCなど幅広い分野があります。 すべてのことを知っている必要はありませんし、知っている人もおそらくいないでしょう。 このような状況下においては知識そのものよりも、それについて知りたいと思ったときに調べる方法を持っていることが大切です。
何ごとも突然まったく新しい概念が増えるわけではなく、ものごとには過程が存在します。 ECMAScriptにおいては策定プロセスという形でどのような段階であるかが公開されています。 つまり、仕様にいきなり新しい機能が増えるのではなくプロポーザルという段階を踏んでいます。
日々変化しているソフトウェアにおいては、自身に適切な調べ方を持つことが大切です。
この章はアウトプットする項目より知らない語句についてまとめました。復習する際はJavaScriptPrimerを読み返し、わからない語句を本記事で確かめながら行います。