ECMAScriptとJavaScriptの違いは何ですか?私が推測したところによると、ECMAScriptが標準であり、JavaScriptが実装です。これは正しいです?
16 に答える
ちょっとした歴史のレッスンが必要だと思います。
JavaScriptは元々Mochaという名前で、Livescriptに変更されましたが、最終的にはJavaScriptになりました。
JavaScriptはECMAscriptの前に登場し、歴史からその理由がわかることに注意することが重要です。
最初から、JavaScriptの名前はJavaに由来し、最初にBrendan Eich(JSの作成者)は、Netscape用のWeb用にJavaに似た言語を開発するように依頼されました。
しかし、Eichは、Javaはすべてのルールが複雑すぎると判断し、初心者でもコーディングできる単純な言語の作成に着手しました。これは、セミコロンの必要性が緩和されるなどの点で明らかです。
言語が完成した後、NetscapeのマーケティングチームはSunに、JavaScriptをマーケティングスタントとして名前を付けることを許可するように要求しました。したがって、JavaScriptを使用したことがないほとんどの人がJavaScriptがJavaに関連していると考える理由です。
ブラウザでJavaScriptがリリースされてから約1、2年後、MicrosoftのIEはこの言語を採用し、JScriptなどの独自の実装を作成し始めました。同時に、IEは市場を支配しており、Netscapeがプロジェクトを閉鎖しなければならなくなって間もなくでした。
Netscapeがダウンする前に、彼らはECMAScriptという名前のJavaScriptのパスをガイドする標準を開始することを決定しました。
ECMAScriptにはいくつかのリリースがあり、1999年に、次の10年間休止状態になる前に、最後のバージョン(ECMAScript 3)をリリースしました。この10年間、Microsoftがシーンを支配しましたが、同時に製品を改善していなかったため、Firefox(Eichが主導)とChrome、Operaなどの他のブラウザーのヒープ全体が誕生しました。
ECMAScriptは、厳密モードなどの機能を備えた第5版を2009年にリリースしました(第4版は廃止されました)。それ以来、ECMAScriptは大きな勢いを増しており、これまでで最大の変更を加えて、数か月後に第6版をリリースする予定です。
ECMAScript 6の機能のリストは、http://kangax.github.io/es5-compat-table/es6/と、ブラウザーのサポートで使用できます。CoffeeScriptの場合と同じようにEcmascript6の記述を開始し、コンパイラーを使用してEcmascript5にコンパイルすることもできます。
ECMAScriptが言語であり、JavaScriptが方言であるかどうかは議論の余地がありますが、重要ではありません。あなたがこのように考え続けるならば、それはあなたを混乱させるかもしれません。ECMAScriptを実行するコンパイラはありません。JavaScriptはECMAScriptと呼ばれる標準を実装する言語と見なされていると思います。
ActionScript(Flashに使用)など、ECMAScriptを実装する他の注目すべき言語もあります。
ECMAScriptは言語ですが、JavaScript、JScript、さらにはActionScript3も「方言」と呼ばれます。ウィキペディアはこれにいくつかの光を当てています。
ECMAScript = ES:
ECMAScriptは、スクリプト言語の標準です。
Javascriptのような言語は、ECMAScript標準に基づいています。
ECMA Standardは、JavaScript(Netscape)とJScript(Microsoft)で最もよく知られている、いくつかの独自のテクノロジに基づいています。
ECMAは、European ComputerManufacturer'sAssociationを意味します
JavaScript = JS:
JavaScriptは、ECMAScript標準の最も一般的な実装です。
Javascriptのコア機能はECMAScript標準に基づいていますが、JavascriptにはECMA仕様/標準にない他の追加機能もあります。
ActionScriptとJScriptは、ECMAScriptを実装する他の言語です。
JavaScriptは標準化のためにECMAに提出されましたが、Javascriptという名前の商標の問題により、標準はECMAScriptと呼ばれるようになりました。
すべてのブラウザにはJavaScriptインタプリタがあります。
ES5 = ECMAScript 5:
ES5は、ECMAScriptのバージョン(古い/現在のもの)です。
ES5は、現在ブラウザで使用されているJavaScriptです。
ES5は、今日のブラウザーで実行されるものに変換するためのビルドステップ(トランスパイラー)を必要としません。
ECMAScriptバージョン5は2009年12月に終了し、すべての主要なブラウザー(Chrome、Safari、Firefox、およびIE)の最新バージョンにバージョン5が実装されています。
バージョン5.1は2011年6月に終了しました。
ES6 = ECMAScript 6 = ES2015 = ECMAScript 2015:
ES2015は、ECMAScriptのバージョン(新規/将来のもの)です。
正式には、ES6の代わりにES2015という名前を使用する必要があります。
ES6は、TypeScriptとCoffeeScriptで対処されているコア言語の欠点の多くに取り組みます。
ES6はJavaScriptの次のイテレーションですが、今日のブラウザーでは実行されません。
ブラウザで実行するためにES5をエクスポートするトランスパイラーはかなりあります。
BabelJS:
BabelJSは、新しいJavaScriptES6を古いJavaScriptES5に変換する最も人気のあるトランスパイラーです。
BabelJSは、今日の次世代JavaScript(ES2015を意味する)の作成を可能にします。
BabelJSは、ES2015ファイルを取得してES5ファイルに変換するだけです。
現在のブラウザバージョンは、まだサポートされていない場合でも、新しいJavaScriptコード(ES2015)を理解できるようになりました。
TypeScriptとCoffeeScript:
どちらもES5の上に構文糖衣構文を提供し、ES5準拠のJavaScriptにトランスコンパイルされます。
TypeScriptまたはCoffeeScriptを作成すると、トランスパイラーはそれをES5JavaScriptに変換します。
JavaScript = ECMAScript + DOM + BOM ;
ECMAScript®言語仕様は、オブジェクト、配列、数値などを作成および編集するためのすべてのロジックを定義します。
DOM(D ocument O bject M odel)を使用すると、HTML / XMLドキュメント(例)との通信が可能になります
document.getElementById('id');
。BOM(B rowser O bject M odel)は、ブラウザーオブジェクト(ロケーションオブジェクト、履歴オブジェクト、フォーム要素など)の階層です。
JavaScriptの命名の歴史:
Mocha►LiveScript►JavaScript►(JSの一部が生成されました)ECMA-262►ECMAScript►JavaScript(ECMAScript + DOM + BOMで構成されます)
技術的には、ECMAScriptは誰もが使用および実装している言語です。これは、NetscapeとMicrosoftが座り、JavaScript(Netscapeのスクリプト言語)とJScript(Microsoft)の間のスクリプトを標準化しようとしたときに作成された仕様です。
その後、これらすべてのエンジンは表面上はECMAScriptを実装していますが、JavaScript(名前)は現在、従来の命名上の理由と、Mozillaによるさまざまな非標準拡張機能(実際に「バージョン」を作成できるようにしたい)のマーケティング用語として使用されています。 )。
ECMAScript、つまりESとは何ですか?
ECMAScriptはスクリプト言語の標準であり、Javascript言語はECMAScript標準に基づいています。
JavascriptはECMAScriptとまったく同じですか?
- いいえ、JavascriptはECMAScriptと完全に同等ではありません。
- Javascriptのコア機能はECMAScript標準に基づいていますが、JavascriptにはECMA仕様/標準にない他の追加機能もあります。
JavaScript = ECMAScript + DOM API;
次のようなDOMAPI:document.getElementById('id');
他の言語はECMAScript標準を使用していますか?
- はい、JavaScript以外にも、ECMAScript標準をコアとして実装している言語があります。
- ActionScript(Adobe Flashで使用)とJScript(Microsoftで使用)はどちらもECMAScript標準を実装する言語です。
なぜECMAScriptと呼ばれるのですか?
- JavascriptはもともとNetscapeで作成されたもので、言語を標準化したいと考えていました。そこで、彼らは標準化のためにその言語をヨーロッパのコンピュータ製造業者の協会(ECMA)に提出しました。
- しかし、Javascriptという名前には商標の問題があり、標準はECMAScriptと呼ばれるようになりました。これは、現在も使用されている名前です。
- 商標の問題があるため、Microsoftのバージョンの言語はJScriptと呼ばれます。ただし、JScriptは、基本的にJavascriptと同じ言語です。
さまざまなJavaScriptバージョンは、ECMAScript標準の実装です。
私の理解では、ECMAScriptは「理論」または「仕様」であり、Javascriptは「実践」または「実装」です。
私はこれが古い投稿であることを知っていますが、うまくいけばこれは誰かを助けるでしょう。
1990年代に、さまざまなバージョンのjsが、netscapeのjavascript、MicrosoftのJsスクリプトのように登場し始めました。そのため、ecmascriptが標準として導入されました。しかし、ecmascriptは、そのコア構文、タイプ、オブジェクトなどを指定するjavascriptの一部のみを形成します。おそらく、diff全体でのjavascriptの一貫性のない実装を説明しています。ブラウザ
リファレンス-Wrox(Web開発者向けのプロフェッショナルJavascript)
JavaScriptはECMAScript言語です。
ECMAScriptは必ずしもJavaScriptではありません。
既存の回答は、要点を非常にうまく言い換えています。
重要な点は、ECMAScriptは、ドメイン固有の拡張機能がない裸の抽象言語であり、それ自体では役に立たないということです。仕様は、言語とそのコアオブジェクトのみを定義します。
JavaScriptやActionScript、その他の方言はドメイン固有のライブラリを追加するので、何か意味のあるものに使用できます。
多くのECMAScriptエンジンがあり、それらのいくつかはオープンソースであり、他はプロプライエタリです。それらをプログラムにリンクしてから、ネイティブ関数をグローバルオブジェクトに追加して、プログラムをスクリプト化できるようにすることができます。ほとんどの場合、それらはブラウザで使用されます。
Javascriptは元の名前であり、javaの人気を利用することを目的としています。ECMAは、最終的に導入された標準を監督する標準化団体であるため、名前はほぼ同じです。
実装には、V8やRhinoなどの他の名前があります。
ECMAScriptはJavaScriptの標準です。MDNの次のステートメントを見てください。
JavaScript
JavaScript(JS)は、ファーストクラスの関数を備えた軽量のインタプリタまたはJITコンパイル型プログラミング言語です。Webページのスクリプト言語として最もよく知られていますが、node.js、Apache CouchDB、Adobe Acrobatなど、多くの非ブラウザー環境でも使用されています。JavaScriptは、プロトタイプベースのマルチパラダイムで動的な言語であり、オブジェクト指向、必須、および宣言型(関数型プログラミングなど)のスタイルをサポートします。JavaScriptについてもっと読む。
ECMAScript
JavaScriptの標準はECMAScriptです。2012年の時点で、すべての最新のブラウザーはECMAScript5.1を完全にサポートしています。古いブラウザは少なくともECMAScript3をサポートします。2015年6月17日、ECMAInternationalはECMAScriptの6番目のメジャーバージョンを公開しました。これは正式にはECMAScript2015と呼ばれ、当初はECMAScript6またはES6と呼ばれていました。それ以来、ECMAScript標準は毎年のリリースサイクルにあります。このドキュメントは、現在ECMAScript2018である最新のドラフトバージョンを参照しています。
詳細については、こちらをご覧ください
これが私の発見です:
JavaScript:David Flanaganによって書かれた決定的なガイドは非常に簡潔な説明を提供します:
JavaScriptはWebの初期のNetscapeで作成されました。技術的には、「JavaScript」はSun Microsystems(現在はOracle)からライセンス供与された商標であり、Netscape(現在はMozilla)による言語の実装を説明するために使用されます。Netscapeは標準化のために言語をECMAに提出しましたが、商標の問題のため、言語の標準化されたバージョンは厄介な名前「ECMAScript」で立ち往生していました。同じ商標上の理由から、Microsoftのバージョンの言語は正式には「JScript」として知られています。実際には、ほぼすべての人が言語をJavaScriptと呼んでいます。
Microsoftのブログ投稿は、Flanaganが次のように説明していることに同意しているようです。
ECMAScriptは、私たち全員が知っていて愛しているJavaScript言語の正式名称です。
JavaScript
..これにより、このリファレンス投稿(Microsoftによる)のすべての出現箇所を。に置き換える必要があると思いますECMASCript
。彼らは実際には、この、より最近の、より技術的なドキュメントページでECMAScript
のみ使用することに注意しているようです。
w3schools.comは上記の定義に同意しているようです。
JavaScriptは1995年にBrendanEichによって発明され、1997年にECMA標準になりました。ECMA-262は標準の正式名称です。ECMAScriptは、言語の正式な名前です。
ここで重要なのは、言語の正式な名前です。
MozillaのJavaScriptバージョンページを確認すると、次のステートメントが表示されます。
非推奨。言語機能の明示的なバージョン管理とオプトインはMozilla固有であり、削除中です。Firefox 4は、JavaScriptバージョン(1.8.5)を参照した最後のバージョンでした。新しいECMA標準により、JavaScript言語機能は、ECMAScript2015などのECMA-262エディションでの初期定義とともに頻繁に言及されるようになりました。
また、最近のリリースノートを見ると、次のようなECMAScript標準への参照が常に表示されます。
ES2015 Symbol.toStringTagプロパティが実装されました(バグ1114580)。
ES2015 TypedArray.prototype.toString()およびTypedArray.prototype.toLocaleString()メソッドが実装されました(バグ1121938)。
Mozilla Web Docsには、ECMAScriptとJavaScriptの違いを説明するページもあります。
ただし、Webブラウザのコンテキストで理解される包括的な用語「JavaScript」には、いくつかの非常に異なる要素が含まれています。それらの1つはコア言語(ECMAScript)であり、もう1つはDOM(Document Object Model)を含むWebAPIのコレクションです。
結論
私の理解では、人々はJavaScriptという言葉をやや自由に使用してコアECMAScript仕様を参照しています。
最新のJavaScript実装(またはJavaScriptエンジン)はすべて、実際にはECMAScript実装です。たとえば、GoogleのV8エンジンの定義を確認してください。
V8はGoogleのオープンソースの高性能JavaScriptエンジンであり、C ++で記述され、Google Chrome、Googleのオープンソースブラウザ、Node.jsなどで使用されています。ECMA-262で指定されているようにECMAScriptを実装します。
彼らはJavaScriptとECMAScriptという言葉を同じ意味で使用しているようですが、実際にはECMAScriptエンジンだと思いますか?
そのため、ほとんどのJavaScriptエンジンは実際にはECMAScript標準を実装していますが、ECMAScriptエンジンと呼ぶ代わりに、JavaScriptエンジンと呼んでいます。この答えは、私が状況を見る方法もサポートしています。
「JavaScript」という名前がSunによって所有されているという事実がなければ、「ECMAScript」という単語を使用することはないと思います。すべての意図と目的のために、言語はJavaScriptです。ECMAScriptの本を探して本屋に行くことはありませんか?
「JavaScript」が実装であると言うのは少し簡単すぎます。JScriptはMicrosoftの実装です。
JavaScriptは、ECMAScript標準を中心に形成された言語の1つのブランチです。ECMAはEuropeanComputerManufacturers Associationであり、これが本当に関連性があるというわけではないと思います。
ECMA Script標準を中心に形成されたもう1つの人気のある言語は、Adobe Flash/Flexで使用されるActionScriptであることを忘れないでください。