《01》ECMAScript 6 简介
ECMAScript 6.0(以下簡稱 ES6)是 JavaScript 語言的下一代標準,已經在 2015 年 6 月正式發布了。它的目標,是使得 JavaScript 語言可以用來編寫復雜的大型應用程序,成為企業級開發語言。
目錄
1.ECMAScript 和 JavaScript 的關系
2.ES6 與 ECMAScript 2015 的關系
3.ECMAScript 的歷史
4.Babel 轉碼器
1.ECMAScript 和 JavaScript 的關系
ECMAScript 和 JavaScript 的關系是,前者是后者的規格,后者是前者的一種實現(另外的 ECMAScript 方言還有 JScript 和 ActionScript)。日常場合,這兩個詞是可以互換的。
2.ES6 與 ECMAScript 2015 的關系
ES6 既是一個歷史名詞,也是一個泛指,含義是 5.1 版以后的 JavaScript 的下一代標準,涵蓋了 ES2015、ES2016、ES2017 等等,而 ES2015 則是正式名稱,特指該年發布的正式版本的語言標準。本書中提到 ES6 的地方,一般是指 ES2015 標準,但有時也是泛指“下一代 JavaScript 語言”。
3.ECMAScript 的歷史
ES6 從開始制定到最后發布,整整用了 15 年。
前面提到,ECMAScript 1.0 是 1997 年發布的,接下來的兩年,連續發布了 ECMAScript 2.0(1998 年 6 月)和 ECMAScript 3.0(1999 年 12 月)。3.0 版是一個巨大的成功,在業界得到廣泛支持,成為通行標準,奠定了 JavaScript 語言的基本語法,以后的版本完全繼承。直到今天,初學者一開始學習 JavaScript,其實就是在學 3.0 版的語法。
2000 年,ECMAScript 4.0 開始醞釀。這個版本最后沒有通過,但是它的大部分內容被 ES6 繼承了。因此,ES6 制定的起點其實是 2000 年。
為什么 ES4 沒有通過呢?因為這個版本太激進了,對 ES3 做了徹底升級,導致標準委員會的一些成員不愿意接受。ECMA 的第 39 號技術專家委員會(Technical Committee 39,簡稱 TC39)負責制訂 ECMAScript 標準,成員包括 Microsoft、Mozilla、Google 等大公司。
2007 年 10 月,ECMAScript 4.0 版草案發布,本來預計次年 8 月發布正式版本。但是,各方對于是否通過這個標準,發生了嚴重分歧。以 Yahoo、Microsoft、Google 為首的大公司,反對 JavaScript 的大幅升級,主張小幅改動;以 JavaScript 創造者 Brendan Eich 為首的 Mozilla 公司,則堅持當前的草案。
2008 年 7 月,由于對于下一個版本應該包括哪些功能,各方分歧太大,爭論過于激烈,ECMA 開會決定,中止 ECMAScript 4.0 的開發,將其中涉及現有功能改善的一小部分,發布為 ECMAScript 3.1,而將其他激進的設想擴大范圍,放入以后的版本,由于會議的氣氛,該版本的項目代號起名為 Harmony(和諧)。會后不久,ECMAScript 3.1 就改名為 ECMAScript 5。
2009 年 12 月,ECMAScript 5.0 版正式發布。Harmony 項目則一分為二,一些較為可行的設想定名為 JavaScript.next 繼續開發,后來演變成 ECMAScript 6;一些不是很成熟的設想,則被視為 JavaScript.next.next,在更遠的將來再考慮推出。TC39 委員會的總體考慮是,ES5 與 ES3 基本保持兼容,較大的語法修正和新功能加入,將由 JavaScript.next 完成。當時,JavaScript.next 指的是 ES6,第六版發布以后,就指 ES7。TC39 的判斷是,ES5 會在 2013 年的年中成為 JavaScript 開發的主流標準,并在此后五年中一直保持這個位置。
2011 年 6 月,ECMAScript 5.1 版發布,并且成為 ISO 國際標準(ISO/IEC 16262:2011)。
2013 年 3 月,ECMAScript 6 草案凍結,不再添加新功能。新的功能設想將被放到 ECMAScript 7。
2013 年 12 月,ECMAScript 6 草案發布。然后是 12 個月的討論期,聽取各方反饋。
2015 年 6 月,ECMAScript 6 正式通過,成為國際標準。從 2000 年算起,這時已經過去了 15 年。
目前,各大瀏覽器對 ES6 的支持可以查看kangax.github.io/compat-table/es6/。
Node.js 是 JavaScript 的服務器運行環境(runtime)。它對 ES6 的支持度更高。除了那些默認打開的功能,還有一些語法功能已經實現了,但是默認沒有打開。使用下面的命令,可以查看 Node.js 默認沒有打開的 ES6 實驗性語法。
4.Babel 轉碼器
Babel?是一個廣泛使用的 ES6 轉碼器,可以將 ES6 代碼轉為 ES5 代碼,從而在老版本的瀏覽器執行。這意味著,你可以用 ES6 的方式編寫程序,又不用擔心現有環境是否支持。下面是一個例子。
// 轉碼前 input.map(item => item + 1);// 轉碼后 input.map(function (item) {return item + 1; });總結
以上是生活随笔為你收集整理的《01》ECMAScript 6 简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端代码规范网址导航(总结)
- 下一篇: 《02》let 和 const 命令