ECMA、ECMAScript、javascript、ES6、JavaScript 引擎、宿主環(huán)境、Babel 等概念

ECMA、ECMAScript、javascript、ES6、JavaScript 引擎、宿主環(huán)境、Babel 等概念

  • ECMA: Ecma International,一個(gè)為科學(xué)技術(shù)制定標(biāo)準(zhǔn)的組織。
  • ECMAScript(即 ECMA-262): 由 Ecma 國(guó)際發(fā)布的標(biāo)準(zhǔn),它包含通用目的的腳本語(yǔ)言(如 javascript)的規(guī)范。
  • 腳本語(yǔ)言: 一種專門為在一種存在的實(shí)體或系統(tǒng)(JavaScript 運(yùn)行時(shí)(即宿主環(huán)境))上操作而設(shè)計(jì)的編程語(yǔ)言。如 javaceript
  • JavaScript: 一種通用目的的腳本語(yǔ)言,遵循 ECMAScript 規(guī)范,它是 ECMAScript 語(yǔ)言的一個(gè)分支版本。有點(diǎn)“ECMAScript 語(yǔ)言衍生出的方言”的意思。JavaScript 實(shí)現(xiàn)了多數(shù) ECMA-262 中描述的 ECMAScript 規(guī)范,但存在少數(shù)差異。
  • JavaScript 引擎(JavaScript 解釋器,JavaScript 的實(shí)現(xiàn)): 能夠理解和執(zhí)行 JavaScript 代碼的程序或解釋器。通??梢栽?web 瀏覽器中,包括 Chrome 中的 V8 ,火狐中的 SpiderMonkey ,以及 Edge 中的 Chakra ,每款引擎就像是一個(gè)用于其應(yīng)用程序的語(yǔ)言模塊,可以讓其支持某種 JavaScript 語(yǔ)言的分支。
  • 瀏覽器性能的差異: 體現(xiàn)在 JavaScript 引擎實(shí)現(xiàn)起來效率的差異,效率越高而運(yùn)行越快。
  • 瀏覽器支持的差異: 通常是指該瀏覽器支持哪個(gè)版本的 ECMAScript,或者說該瀏覽器支持哪些 ECMAScript 功能。ECMASCript 兼容性列表是回答這類問題的絕佳答案參考。
  • JavaScript 運(yùn)行時(shí)(宿主環(huán)境): 提供 JavaScript 代碼運(yùn)行所在的環(huán)境,并為 JavaScript 引擎所解釋。

視窗和文檔對(duì)象并非真正的核心 JavaScript 語(yǔ)言的一部分。它們是 Web APIs ,即扮演著 JavaScript 宿主環(huán)境的瀏覽器所提供的對(duì)象。對(duì)于服務(wù)器端來說,JavaScript 運(yùn)行時(shí)是 Node.js 。服務(wù)器相關(guān)的宿主對(duì)象,如文件系統(tǒng)、處理和請(qǐng)求都在 Node.js 中被提供。

有趣的是:不同的 JavaScript 運(yùn)行時(shí)可以分享同樣的 JavaScript 引擎。例如 V8 ,是既為 Google Chrome 也為 Node.js 所用的 JavaScript 引擎—兩個(gè)截然不同的環(huán)境。

  • ECMAScript 6(即 ES6、ES2015 或 ECMAScript 2015): 它是 ECMA-262 標(biāo)準(zhǔn)的第六個(gè)版本,其特點(diǎn)是對(duì) ECMAScript 規(guī)范有著顯著的變化和改進(jìn)。
  • Babel: 將 ES6 代碼轉(zhuǎn)換為 ES5 代碼的轉(zhuǎn)譯器。(主要因?yàn)椴煌瑸g覽器對(duì) ES6 規(guī)范支持程度不一樣導(dǎo)致,粗略低講是不同瀏覽器的兼容性問題)

趣聞: 有一段關(guān)于 JavaScript 混淆不清的歷史是它是于1996年被開發(fā)出來的。然后在1997年被提交給 ECMA 國(guó)際用于標(biāo)準(zhǔn)化工作,這導(dǎo)致了 ECMAScript 的誕生。同時(shí),由于 JavaScript 與 ECMAScript 規(guī)范保持一致,所以可以說 JavaScript 是根據(jù) ECMAScript 所實(shí)現(xiàn)的一個(gè)例子。令我們感到有趣的是:ECMAScript 是基于 JavaScript 的,而同時(shí) JavaScript 又是基于 ECMAScript 的。到底是先有雞呢,還是先有蛋呢?

ECMAJavascript.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容