JS

今さら聞けない!JavaScriptって何?ES5、ES6って何?

WebアプリケーションやWeb制作でJavaScriptは必須スキルですし、なんとなーくは使えていても、いざ「JavaScriptって何?」って改めて聞かれるとパッと答える人は少ないと思います。
今回はJavaScriptの生い立ち、JavaScriptとECMAScritpの関係やバージョンなどを徹底解説していきます。

JavaScriptができた背景

JavaScriptのプログラミング言語を勉強していると、たびたび「ECMAScritp」と言うワードを目にします。

JavaScriptができた経緯として、時は1990年に遡ります。
いわゆるインターネット黎明期に「Netscape Navigator」と言うブラウザーがありました。

当時はこのブラウザーが大きなシェアを持っていました。


俺が一番やで!!

しかーし、そこに現れた”ライバル”が「Internet Explorer」でした。

いやいや…何言ってるんですかぁ?

この「Internet Explorer」は誰でも知っているとおり、マイクロソフト社が開発しているブラウザですので、Windowsのパソコンには必ずインストールされています。
そのため、一気にシェアが高まりライバルへと君臨したわけです。

そこでシェアを取られて立場が奪われると焦り出した「Netscape Navigator」が「JavaScript」を開発しました。
一方、マイクロソフトとしても「JavaScript」を使いたかったのですが…ライセンスの問題で使えないので、仕方なしに「JScript」と言うものを開発しました。

JavaScriptは使わせないもんね^^w
ぐぬぬ…せや!

この2つのプログラミング言語には互換性がなかったため、互換性を持たせるためにできたのが「ECMAScritp」でした。

まぁ〜まぁ〜喧嘩やめなよ…

ECMAScritpの誕生

JavaScript言語の”肝”な部分を言語仕様として切り出したものになります。
したがってECMAScriptはJavaScriptのコアなものだといえます。

これによってブラウザ同士の仕様を統一することができ、開発者が幸せになりました。
あくまでも「ECMAScritp」プログラミング言語の仕様となるので、その仕様に則って実装されたのがJavaScriptになります。

現状、ECMAScritpの仕様を基にして作成されたプログラミング言語でメジャーなものは「JavaScript」以外にありませんので、実質「JavaScritp」言語の一部仕様「ECMAScritp」と言えるでしょう。

余談ですが、「ECMAScritp」は、Ecma Internationalと言う標準化する機関にて、「TC39」という技術委員会によって仕様が決められています。

もちろんJavaScritpの一部が「ECMAScritp」でありますが、これ以外にもJavaScriptは”環境”によって持っている機能が異なります。
では、環境によってどのように変わってくるのかを見ていきましょう!

ブラウザ環境


私たちが普段よく使うブラウザですが、JavaScritpと大きな関係があります。
ブラウザ環境の場合、「ECMAScritp」の他に「WebAPIs」と言うものが使用できます。

こちらは、JavaScriptからブラウザの機能を動作するためのAPIです。
例えば画面の更新は「DOM API」と言うものを使います。
イメージとしては、最近よくみるモダンな動作をするウェブサイトなどはJavaScriptのDOM APIを使用しています。

Node.js環境


PC上でJavaScriptを動作させる「Node.js」と言うソフトウェアを使用します。
こちらは「ECMAScritp」に加え、「CommonJS」と言うモジュールを管理する仕組みを使うことができます。

ここで需要なのは、JavaScriptは「実行する環境によって使えるものが変わる」と言うことです。
これは非常に重要な考え方ですので覚えておきてください。

まとめ

JavaScriptは「ECMAScritp」の仕様に基づいて実装されているプログラミング言語であります。
また、環境によって使える機能が変わってきます。

この2点を覚えておけば完璧です!

おまけ

ECMAScritpのバージョンについて

JavaScriptを使っていると「ES5」「ES6」など聞いたことありませんか?

バージョン 通称
2009 5版 ES5
2015 6版 ES2015(ES6)
2016 7版 ES2016(ES7)
2017 8版 ES2017(ES8)
2018 9版 ES2018(ES9)

ECMAScriptのバージョンをまとめました。
この第5版と6版には約6年の歳月がかかっております。

実はこの間に2011年くらいに5.5版があったっぽいですけど、メジャーアップデートは6版となっています。
この後には1年ごとにアップデートしています。

ただ、この5から6にアップデートされるのに6年かかっていると言うこともあり、かなりの大規模アップデートでした。
かなりの機能がES6では追加されています。

なのでこのES5、ES6と言う単語はJavaScriptを使用するといやでも聞きます。
ES6以降は1年ずつアップデートされていますが、こちらがなぜ頻繁に更新されているかというと”仕様策定のプロセスが変わった”からです。

では、実際にどのように仕様策定決まっていくのかを見ていきましょう!
現在の「ECMAScript」の仕様は「Living Standard」といい”機能ごとに仕様を策定”し、仕様が決まったものから最新の仕様書に順次追加されます。

策定プロセス


Strawmanはアイディアレベル、Proposalは機能提案・検討、Draftは暫定的に仕様決定。
したがって、ステージ2以降が最新のES版に取り込まれます。

このプロセスはGitHub上でドキュメント管理されています!
気になる方がぜひチェックしてみてください。