#JS学習シリーズの目的
このシリーズは、私ジャックが学んだJavaScriptのメカニズムについてアウトプットも兼ねて、
皆さんと知識や理解を共有するためのものです。
(理解に間違いがあればご指摘いただけると幸いです)
#ECMAScriptとは
「JavaScript言語のコアの部分をECMAScriptとして仕様策定したもの」
1990年代(インターネット黎明期)に当時はブラウザとして大きなシェアを持っていた
"Netscape Navigator"(以降NNと略す)が皆さんご存じ"Internet Explore"(以降IEと略す)という
(当時は大きな)ライバルに勝つためにJavaScriptを生み出しました。
IEもこのJavaSciriptを使いたかったが、ライセンスなどの問題で使えなかったので新たに"JScript"を生み出しました。
しかし、この2つの言語には互換性がなかったため、ブラウザ間での仕様を統一するためにECMAScriptが作られました。
これにより、開発者がサイトなどの開発がしやすくなりハッピーになったというわけです。
#JavaScriptは実行環境によって使える機能が変わる
ECMAScriptについては前述した通りですが、あくまでJavaScriptの一部がECMAScriptです。
ブラウザ環境で動くのがECMAScript(他にもWeb APIsがある)ですが、PC内のNode.jsで動くときは
"ECMAScript"に加えて"CommonJS"が使われます。
ここで重要なのは、見出しの通り「JavaScriptは実行環境によって使える機能が変わる」ということです。
#まとめ
JavaScriptとは
・ECMAScriptの仕様に基づいて実装されているプログラミング言語
・環境によって使える機能が変わってくる
#おまけ
現在のECMAScriptの仕様策定は"Living Standard"といって、
「機能毎に使用を策定し、仕様が決まったものから最新版の仕様書に順次追加していく」
というプロセスを採用しています。
仕様策定プロセスはStage0~Stage4まで存在し、それぞれ
Stage0--アイデアレベル(Strawman)
Stage1--機能提案・検討(Proposal)
Stage2--暫定的に仕様決定(Draft)
Stage3--テスト・実装(Candidate)
Stage4--仕様決定(Finished)
基本的にStage2(Draft)の段階からES最新版に取り込みします。