什么是ECMAScript(來龍去脈娓娓道來)?

什么是ECMAScript(來龍去脈娓娓道來)?

作者:馮天然

鏈接:https://zhuanlan.zhihu.com/p/22557749

來源:知乎

什么是ECMAScript

首先既然要更好的了解敢艰,起碼得先說說什么是 ECMAScript胚泌。

ECMAScript 是一種由 ECMA國際(前身為歐洲計(jì)算機(jī)制造商協(xié)會)通過 ECMA-262 標(biāo)準(zhǔn)化的腳本程序設(shè)計(jì)語言赫蛇。

看起來出現(xiàn)了很多奇怪的名詞阀捅,ECMA國際训挡?ECMA-262?黑人問號青伤?潦牛??

那么然后來稍微介紹一下什么是 ECMA國際健盒。

ECMA國際

Ecma國際(Ecma International)是一家國際性會員制度的信息和電信標(biāo)準(zhǔn)組織绒瘦。1994年之前,名為歐洲計(jì)算機(jī)制造商協(xié)會(European Computer Manufacturers Association)扣癣。因?yàn)橛?jì)算機(jī)的國際化惰帽,組織的標(biāo)準(zhǔn)牽涉到很多其他國家,因此組織決定改名表明其國際性〔現(xiàn)名稱已不屬于首字母縮略字善茎。

與國家政府標(biāo)準(zhǔn)機(jī)構(gòu)不同,Ecma國際是企業(yè)會員制的組織频轿。組織的標(biāo)準(zhǔn)化過程比較商業(yè)化垂涯,自稱這種營運(yùn)方式減少官僚追求效果烁焙。

上面這些信息都可以在 WIKI 中找到。大家可以很明確的看到耕赘,Ecma國際是一家和企業(yè)密切相連的組織骄蝇,所以 Ecma國際制定的規(guī)范都是由各類企業(yè)來做主要的制定和推廣。

那么既然說到了 Ecma國際操骡,那么它都做了些什么事呢九火?

其實(shí) Ecma國際負(fù)責(zé)了很多標(biāo)準(zhǔn)的制定,比如有如下這些規(guī)范册招。大家可以看到這里面有我們今天的主角岔激,ECMAScript 規(guī)范。

CD-ROM格式(之后被國際標(biāo)準(zhǔn)化組織批準(zhǔn)為ISO 9660)

C#語言規(guī)范

C++/CLI語言規(guī)范

通用語言架構(gòu)(CLI)

ECMAScript語言規(guī)范(JavaScript)

Eiffel語言

電子產(chǎn)品環(huán)境化設(shè)計(jì)要素

Universal 3D標(biāo)準(zhǔn)

OOXML

Dart語言規(guī)范

JAVASCRIPT的誕生

在說 ECMA262 之前是掰,我們先來講講 javascript 的歷史虑鼎。

在1994年,Netscape 發(fā)布了 Navigator0.9键痛,但是因?yàn)槟莻€時候的瀏覽器缺乏和用戶有良好交互的能力炫彩。所以 Netscape 急切渴望一門可以在瀏覽器中運(yùn)行,可以提供一定用戶交互的語言絮短。

然后在1995年江兢,Netscape 讓 Brendan Eich 去開發(fā)這門語言。然而丁频,javascript 誕生了杉允。

然而在此之后,Microsoft 推出了一門類似的語言限府,JScript夺颤。

Netscape 為了提升 javascript 的競爭力,于是將 javascript 提供給 ECMA組織 進(jìn)行標(biāo)準(zhǔn)化胁勺。

然后,1997年7月独旷,ECMA262 標(biāo)準(zhǔn)出臺署穗。

時隔14年之后,ECMA-262 標(biāo)準(zhǔn)也被另一個國際標(biāo)準(zhǔn)化組織 ISO(International Organization for Standardization)在2011年6月批準(zhǔn)嵌洼,標(biāo)準(zhǔn)號是 ISO-16262案疲。

ECMAScript 作為一門腳本程序設(shè)計(jì)語言標(biāo)準(zhǔn),并不只有 javascript 這一種實(shí)現(xiàn)麻养,它也有很多的方言實(shí)現(xiàn)褐啡。比如有下面這些語言:

JavaScript

Ejscript

JScript .NET

ActionScript

DMDScript

CriScript

InScript

飛速發(fā)展和穩(wěn)定期

在 ECMAScript 規(guī)范初版發(fā)布后不久。

1998年6月鳖昌,ECMAScript 2.0 發(fā)布备畦。

1999年12月低飒,ECMAScript 3.0 發(fā)布。

這時懂盐,ECMAScript 規(guī)范本身也相對比較完善和穩(wěn)定了褥赊,但是接下來的事情,就比較悲劇了莉恼。

2007年10月拌喉。。俐银。尿背。ECMAScript 4.0 草案發(fā)布。

這次的新規(guī)范捶惜,歷時頗久田藐,規(guī)范的新內(nèi)容也有了很多爭議。

在制定ES4的時候售躁,是分成了兩個工作組同時工作的坞淮。

一邊是以 Adobe, Mozilla, Opera 和 Google為主的 ECMAScript 4 工作組。

一邊是以 Microsoft 和 Yahoo 為主的 ECMAScript 3.1 工作組陪捷。

ECMAScript 4 的很多主張比較激進(jìn)回窘,改動較大。而 ECMAScript 3.1 則主張小幅更新市袖。

最終經(jīng)過 TC39 的會議啡直,決定將一部分不那么激進(jìn)的改動保留發(fā)布為 ECMAScript 3.1,然后將一部分比較激進(jìn)的部分放置到 ES.NEXT 中苍碟,命名為 Harmony(和諧)酒觅,留待以后再進(jìn)行商榷。接下來微峰,ECMAScript? 3.1 變成了 ECMAScript 5舷丹,而 ES.NEXT 中的那些特性,則有著相當(dāng)一部分被ECMAScript 6蜓肆,也就是 ECMAScript 2015 所吸收了颜凯。所以說雖然 ECMAScript 4 被廢棄了,但是它終究還是通過另一種方式活了下來仗扬。

然后症概,2009年12月,ECMAScript 5 發(fā)布早芭。

2011年6月彼城,ECMAScript 5.1 發(fā)布。

TC39

中間插個小話題。其實(shí)在前面大家仔細(xì)看募壕,會發(fā)現(xiàn)有個名詞调炬,TC39。為了接下來的內(nèi)容司抱,所以先來解釋一下 TC39 是什么筐眷。

TC(Technical Committees)

TG(Task Groups)

在ECMA國際,每個標(biāo)準(zhǔn)都會有一個 TC 來負(fù)責(zé)习柠,而一個 TC 中可能會有不同的 TG 來負(fù)責(zé)不同的工作匀谣。而負(fù)責(zé) ECMA262,也就是我們所說的 ECMAScript 的就是 TC39(以前叫 TC39-TG1)资溃。

Ecma organisation在這里我們可以看到各個 TC武翎,并且可以查看其負(fù)責(zé)的標(biāo)準(zhǔn)。

ECMAScript 2015

接下來是一部重頭戲溶锭。

2015年6月宝恶,ECMAScript 6,也就是 ECMAScript 2015 發(fā)布了趴捅。

新的規(guī)范中垫毙,帶有大量 ECMAScript 4 中激進(jìn)特性,以及常年的提案積累拱绑。所以 ECMAScript 6 里和前一版標(biāo)準(zhǔn)有了非常大的差別综芥。

從 ECMAScript 6 開始,標(biāo)準(zhǔn)有了新的猎拨,更加規(guī)范化和快速的制定流程膀藐。面對著每年一次的,頻繁的標(biāo)準(zhǔn)更替红省,再采用1234的版本號來標(biāo)注規(guī)范顯得不太合適额各。所以從 ECMAScript 6 開始,就開始采用年號來做版本吧恃。即 ECMAScript 2015虾啦。

新的規(guī)范制定流程

在新的規(guī)范制定流程中,要求成文標(biāo)準(zhǔn)要從事實(shí)標(biāo)準(zhǔn)中誕生痕寓,實(shí)現(xiàn)先于標(biāo)準(zhǔn)存在缸逃,大家可以在接下來的流程說明中看出來。

每個新特性厂抽,從開始到完成一共要經(jīng)歷5個階段。

strawman (稻草人)階段

任何人都可以提交pull request到GitHub - tc39/ecma262: Status, process, and documents for ECMA262

可以是一個提議丁眼,想法筷凤,初步描述

proposal(提案)階段

TC39制定成員作為 champion

TC39審閱通過

有實(shí)現(xiàn)的 Demo 或者 Polyfill

初步描寫標(biāo)準(zhǔn)的語義語法算法復(fù)雜度解決的問題等

Draft(草案)階段

有兩個或兩個以上的實(shí)現(xiàn)(包括babel這類的轉(zhuǎn)譯實(shí)現(xiàn))

使用正式的語言描述該語法,api等

candidate(候選)階段

至少2個實(shí)現(xiàn),可以為實(shí)驗(yàn)性實(shí)現(xiàn)

ECMAScript spec editor 通過審核

TC39 review 通過

文本編寫完成

Finished(完成)階段

編寫 test 262 測試用例

通過兩個實(shí)現(xiàn)該特性的內(nèi)核測試

ECMAScript spec editor 通過審核

開發(fā)者表示支持和認(rèn)可

接下來藐守,在每年的3月和9月挪丢,都會提交新特性的申請,在 ECMA General Assembly 通過以后卢厂,被添加到標(biāo)準(zhǔn)中去乾蓬。

值得注意的是,TC39 每年的工作日程也是規(guī)劃好了的慎恒。

每年的3月任内,TC39 會召開會議,將完成的特性添加到標(biāo)準(zhǔn)中融柬。

每年的4月到6月死嗦,會由 ECMA CC 和 ECMA CG 來做 Review。

每年的7月粒氧,批準(zhǔn)通過新標(biāo)準(zhǔn)并且發(fā)布越除。所以,ECMAScript 2016 標(biāo)準(zhǔn)外盯,其實(shí)也已經(jīng)正式發(fā)布了摘盆,雖然只新增了兩個特性。我們現(xiàn)在已經(jīng)可以開始看 ECMAScript 2017 的草案了饱苟。

迷茫的新特性

對于有些人來說孩擂,前端的更新總是很突兀,很讓人迷茫掷空。

但是其實(shí)不是的肋殴。變化總是一點(diǎn)一點(diǎn)發(fā)生的。

GitHub - tc39/proposals: Tracking ECMAScript Proposals

我們可以在 TC39 的 Github 倉庫中找到完成了坦弟,廢棄的护锤,以及正在進(jìn)行中的提案。

多去關(guān)注這些東西酿傍,對于很多新事物的到來烙懦,我們也就不會有多驚訝了。

別的 ECMA 標(biāo)準(zhǔn)赤炒?

和 ECMAScript 有關(guān)的標(biāo)準(zhǔn)只有 ECMA262 嗎氯析?

其實(shí)不是。和 ECMAScript 有關(guān)的標(biāo)準(zhǔn)有 ECMA262莺褒,ECMA290掩缓,ECMA327,ECMA357遵岩,ECMA402你辣,ECMA404巡通,ECMA414等等。

其中290舍哄,327宴凉,357等等沒有推廣開來,被廢棄表悬。

ECMA 262 是語言規(guī)范本身弥锄。

ECMA 402 則是制定一些基于 ECMAScript 5 或者之后版本的一些國際化 API 標(biāo)準(zhǔn)。

ECMA 404 是 JSON 規(guī)范蟆沫。

ECMA 414 則規(guī)定了哪些規(guī)范是和 ECMAScript 有關(guān)的籽暇。目前內(nèi)部就包含了 262,402和404饥追。

備注

如果大家想更好的關(guān)注標(biāo)準(zhǔn)的變化图仓,可以訂閱 TC39 的郵件組,關(guān)注 TC39 的 Github但绕,并且在 Twitter 上關(guān)注 TC39 的成員救崔。

引用

ECMAScript

Welcome to Ecma International

John Resig -? ECMAScript Harmony

如何評價 ECMAScript 2016(ES7)只新增2個特性? - 張秋怡的回答

The TC39 Process

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捏顺,一起剝皮案震驚了整個濱河市六孵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌幅骄,老刑警劉巖劫窒,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異拆座,居然都是意外死亡主巍,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門挪凑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來孕索,“玉大人,你說我怎么就攤上這事躏碳「阈瘢” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵菇绵,是天一觀的道長肄渗。 經(jīng)常有香客問我,道長咬最,這世上最難降的妖魔是什么翎嫡? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮永乌,結(jié)果婚禮上钝的,老公的妹妹穿的比我還像新娘翁垂。我一直安慰自己,他們只是感情好硝桩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著枚荣,像睡著了一般碗脊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上橄妆,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天衙伶,我揣著相機(jī)與錄音,去河邊找鬼害碾。 笑死矢劲,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的慌随。 我是一名探鬼主播芬沉,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼阁猜!你這毒婦竟也來了丸逸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤剃袍,失蹤者是張志新(化名)和其女友劉穎黄刚,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體民效,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡憔维,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了畏邢。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片业扒。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖棵红,靈堂內(nèi)的尸體忽然破棺而出凶赁,到底是詐尸還是另有隱情,我是刑警寧澤逆甜,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布虱肄,位于F島的核電站,受9級特大地震影響交煞,放射性物質(zhì)發(fā)生泄漏咏窿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一素征、第九天 我趴在偏房一處隱蔽的房頂上張望集嵌。 院中可真熱鬧萝挤,春花似錦、人聲如沸根欧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凤粗。三九已至酥泛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間嫌拣,已是汗流浹背柔袁。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留异逐,地道東北人捶索。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像灰瞻,于是被迫代替她去往敵國和親腥例。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容