質問: javascriptの標準仕様ということはなんとなく理解しています。 javascriptはブラウザ毎に実装されているのですよね? 最近のブラウザで動くjavascriptのECMAScriptのバージョンは何なのでしょうか? たとえば、ネストされた関数内でのthisはグローバルオブジェクトを指しますが、ECMAScript5では修正されているそうです。 そうなるとECMAScript5環境では既存のコードの動きは変わってしまうのでしょうか? ご教授お願いします。
回答: HTML5周辺技術やCSSにも言えることですが、 近年今実装されているバージョンは何かということは言えない、言わない状態になっています。 Webの技術というのは原則後方互換性を保って仕様が追加して行かれるものです。 つまり、バージョンを丸ごと一気に実装して移行する必要はなく、 バージョンに関係なく各ブラウザベンダーが重要視する技術から随時実装されていっている状態なのです。 例えばES2015の実装はまだどのブラウザでも完了していませんが、既にES2016やES2017proposalの実装が始まっています。 また、仕様自体もLiving Standardといったバージョンに拘らないものが出たり、ESコアも実質それに近い状態のものへと変化してきています。 よって使う側としてはバージョンは気にしないで、どの機能が実装されているかということに注目するのが現在の良いやり方です。