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