質問: 最近耳にするようになったECMAScriptについてwikiなどでも調べたのですが、 言葉の定義・理解が漠然としており質問させていただきました。 「ECMAScript=JavaScriptの標準仕様」というのは分かったのですが、 下記について教えていただけると嬉しいです。 ※私自身は非エンジニアで所謂エージェント業をしています (出来るだけミスマッチの起きない理解が出来ればと思い質問させていただきました) 【質問】 1.ECMAScriptが標準仕様ということはそれ以外の仕様には何(名称)があるのか? 2.質問1の回答が「なし」であれば、基本的にはJavaScript=ECMAScriptと抑えても 問題ないのでしょうか??(厳密には違うと思うのですが凡その理解レベルでは) 3.質問2とも関係します。質問2がOKである前提の質問となりますが、 最近求人でES6の経験を問われるケースが増えているのですが、 凡そ下記理解で問題ないでしょうか。 ・JavaScriptの世界にはECMAScriptという仕様がある ・ECMAScriptの中でもES5以前とES6以降で全然内容が異なる ・「JavaScriptが出来ます!」という人のスキルや対応範囲を判別するときは、 ES6について質問し、対応経験の有無を聞けば大別できる。 素人の質問ですいません! ご教示いただけると嬉しいです。
回答: > > 1.ECMAScriptが標準仕様ということはそれ以外の仕様には何(名称)があるのか? > > > ECMAScriptの仕様をベースにブラウザで動くように拡張されたものがブラウザで動くJavaScirpt。 サーバーで動くようにされたのがNodeということなのではないでしょうか。 ブラウザで動くって言っても、ブラウザってたくさんありますよね。 各ベンダーがそれぞれでJavaScriptが動くようにブラウザを実装しています。 じゃぁJavaScriptってどんなものなの?っとブラウザの開発者は思うので、 こういうものですと「最低限」規格化されたものがECMAScriptです。 だから、このブラウザでは動くけど、あのブラウザでは動かないという文法が 少なからず存在しました。最近はそういうのはなくなりつつありますが。 ECMAScriptのバージョンが上がると、ブラウザの実装者はその仕様を確認して、 新しい文法を使えるようにブラウザを実装します。 標準SQL規格にのっとるように、各ベンダーがSQLを実装してるようなものだと思います。 Oracle、SQLServer、PostgreSQL、MySQLなどRDBMSは様々ありますが、 上記のブラウザと同様に、製品それぞれで実装されているため その製品でしか使えないような文法や機能もあります。 しかし標準SQLの部分はほぼ全部同じです。 > > 基本的にはJavaScript=ECMAScriptと抑えても問題ないのでしょうか? > > > この時JavaScriptが何を指しているのか分からないため、問題ありそうです。 ブラウザなのかNodeなのかは大きく変わりますのでそこの確認は必要でしょう。 ECMAScriptの仕様を知っているだけでは、 ブラウザとNodeのどちらのJavaScriptも使えるとは言えません。 ブラウザにはブラウザ独自の、NodeにはNode独自の機能が存在するからです。 > > ・JavaScriptの世界にはECMAScriptという仕様がある > > > そうです。 > > ・ECMAScriptの中でもES5以前とES6以降で全然内容が異なる > > > ES6では色々できることが増えましたので、全然内容が異なるのはその通りです。 しかしES5の書き方でも動きますので、今までの知識は無駄ではありません。 積極的にES6を使って書けと言われれば、知らないと書けませんね。 > > ・「JavaScriptが出来ます!」という人のスキルや対応範囲を判別するときは、 > > ES6について質問し、対応経験の有無を聞けば大別できる。 > > > それは少し乱暴かもしれませんね。 前述した通り、ES5で書いたところで何ら問題なく動くのです。 ES5で壮大なものを作れる人を、ES6を知らないからといって「JavaScriptができない」 と判断するのはおかしいでしょうね。