ECMAScript和JavaScript有什麼區別? 根據個人推論,ECMAScript是標準,JavaScript是實現。 這個對嗎? javascript
我知道這是一箇舊帖子,但但願這會對某人有所幫助。 html
在1990年代,不一樣版本的js開始出現,例如netscape的javascript和Microsoft的js腳本。 所以,ecmascript被引入做爲標準。 可是ecmascript只是javascript的一部分,它指定了它的核心語法,類型,對象等。可能解釋了diff中javascript的不一致實現。 瀏覽器 java
參考-Wrox(適用於Web開發人員的專業Javascript) git
以個人理解,ECMAScript是「理論」或「規範」,而Javascript是「實踐」或「實施」。 es6
現有的答案很好地解釋了重點。 github
要點是ECMAScript是一種純粹的抽象語言,沒有任何特定於領域的擴展,它自己是沒有用的。 該規範僅定義語言及其核心對象。 數組
JavaScript,ActionScript和其餘方言向其添加了特定於域的庫,所以您能夠將其用於有意義的事情。 瀏覽器
ECMAScript引擎不少,其中一些是開源的,另外一些是專有的。 您能夠將它們連接到您的程序中,而後將本機函數添加到全局對象中,以便您的程序可編寫腳本。 儘管最常在瀏覽器中使用它們。 dom
JavaScript = ECMAScript + DOM + BOM ; ecmascript
ECMAScript®語言規範定義了用於建立和編輯對象,數組,數字等的全部邏輯。
DOM(d ocumentöbject 中號 Odel等)使得可以使用HTML / XML文檔進行通訊(例如document.getElementById('id');
)。
BOM(B rowseröbject 中號 Odel等)是瀏覽器對象(例如位置對象,歷史對象,表格元件)的層次結構。
JavaScript命名歷史:
Mocha►LiveScript►JavaScript►(JS的一部分產生)ECMA-262►ECMAScript►JavaScript(由ECMAScript + DOM + BOM組成)
我認爲有一點歷史課是應該的。
JavaScript最初稱爲Mocha,後來更改成Livescript,但最終成爲JavaScript。
請務必注意,JavaScript早於ECMAscript,歷史記錄會告訴您緣由。
從一開始,JavaScript就從Java衍生了它的名稱,最初,Brendan Eich(JS的建立者)被要求爲Netscape開發一種相似於Java的語言。
然而,Eich認爲Java的全部規則都過於複雜,所以着手建立一種甚至初學者也能夠編寫代碼的簡單語言。這在諸如放寬對分號的要求等方面很明顯。
語言完成後,Netscape的營銷團隊要求Sun容許他們將JavaScript命名爲營銷特技,所以爲何大多數從未使用過JavaScript的人都認爲JavaScript與Java有關。
在瀏覽器中發佈JavaScript大約一兩年以後,微軟的IE就採用了該語言,並開始製做本身的實現,例如JScript。 同時,IE主導了市場,而Netscape必須關閉其項目不久。
在Netscape崩潰以前,他們決定啓動一個指導JavaScript路徑的標準,稱爲ECMAScript。
ECMAScript有幾個版本,1999年他們發佈了最後一個版本(ECMAScript 3),而後在接下來的10年中進入休眠狀態。 在這10年中,微軟佔據了主導地位,但與此同時,他們並無提升產品質量,所以Firefox誕生了(由Eich領導),並誕生了其餘許多瀏覽器,例如Chrome,Opera。
ECMAScript在2009年發佈了第5版(第4版已被放棄),它具備嚴格模式等功能。 從那時起,ECMAScript得到了巨大的發展動力,並計劃在從如今起的幾個月內發佈其第六版,這是迄今爲止的最大變化。
您能夠在http://kangax.github.io/es5-compat-table/es6/上使用ECMAScript 6的功能列表,以及瀏覽器支持。 您甚至能夠像使用CoffeeScript同樣開始編寫Ecmascript 6,並使用編譯器將其編譯爲Ecmascript 5。
ECMAScript是語言仍是JavaScript是方言是有爭議的,但並不重要。 若是您繼續這樣思考,可能會使您感到困惑。 那裏沒有能夠運行ECMAScript的編譯器,我相信JavaScript被認爲是實現稱爲ECMAScript的標準的語言。
還有其餘實現ECMAScript的引人注目的語言,例如ActionScript(用於Flash)