1. 程式人生 > 其它 >【轉】你瞭解ECMAScript嗎?

【轉】你瞭解ECMAScript嗎?

本篇文章介紹一些和ECMAScript有關的基本概念。

一、基本概念
ECMA,European Computer Manufacturers Association,歐洲計算機制造協會。

TC39,Technical Committee 39,ECMA的第39號技術專家委員會,負責制訂ECMAScript,成員由Microsoft、Mozilla、Google等各個主流瀏覽器廠商的代表組成。

ECMAScript正式名稱為ECMA-262,是由TC39制定的標準化指令碼語言。

二、ECMAScript近幾年的發展歷程

2009年12月,ECMAScript 5.0釋出,簡稱ES5。
2015年6月17日,ECMAScript 6釋出,即ECMAScript 2015,簡稱ES6。
2016年,ECMAScript 7釋出,即ECMAScript 2016,簡稱ES7。
2017年,ECMAScript 8釋出,即ECMAScript 2017,簡稱ES8。

為什麼ES5升級ES6經歷了6年?具體看這篇文章

這裡插播一個問題,TC39 Process是伴隨著ES6一起提出來的,還是之前就有?按照邏輯推理,我猜是ES6的附屬品,他們一起出生的,否則之前就用TC39 Process了,也不會出現ES5升級ES6拖很久的情況。TC39 Process是為了解決ES升級發新特性拖很久的問題,ES6後最好每年都發一版。哈哈,TC39的成員們嫌麻煩,就想點捷徑,儘快發版。tc39處理過程這種做法,會不會讓你想到坐火車這種場景?先上車,後補票。比如瀏覽器還沒支援某stage的特性時,先用babel轉換使用,發版慢也不影響使用。這無形之中是一種非同步的行為啊,不用等到發版後才能用。沒有TC39 Process之前,es發版屬於一種同步行為,要等所有特性都好了,才發版,嚴重阻塞了使用。

三、ECMAScript新特性的處理過程,TC39 Process
TC39制訂ECMAScript時,每個es特性納入規範前,都要經歷5個階段,Stage 0 ~ Stage 4。

Stage 0: strawman,稻草人
只是一個想法idea。
Stage 1: proposal,提議
描述問題,並提供解決方案,比如demo,api,語義,演算法。
Stage 2: draft,草案
實驗性的具體實現,比如用babel
Stage 3: candidate,候選
符合規範的具體實現。
Stage 4: finished,完成
釋出規範。

見天地,見眾生,見自己。