ECMAScript和JavaScript的關系
在1996年,那一年我才4歲懈费。
JavaScript 的親生爸爸 Netscape 不要他了也颤。
可又誰知道尊惰,時隔20年后,我居然要靠這個棄嬰在社會上討口飯吃拟杉。
So庄涡,誰來接管了這個棄嬰呢?
原來一個作為標準化的組織 ECMA 接手了它搬设。
其實穴店, Netscape 的出發(fā)點是好的,所謂拿穴,“望子成龍泣洞,望女成鳳”,他也希望 JavaScript 能在未來的時代里形成自己的風格和潮流贞言,成為一種國際標準斜棚。
而后的20多年時間里,JavaScript果然不負所望该窗,成為新的弄潮兒弟蚀。
在次年,1997年酗失。養(yǎng)父 ECMA 發(fā)布了262號標準文件的第一版义钉,也就是 ECMA-262 。這個已經(jīng)具有了劃時代的意義了规肴,因為也就是這個文件的發(fā)布捶闸,規(guī)定了瀏覽器腳本語言的標準夜畴,它們賦予了這個孩子一個新的名字,管它叫做 ECMAScript 删壮。
這個版本就是1.0版本贪绘。
至于,它為什么不叫 JavaScript 央碟?
一是這個名字是 Netscape 起的税灌,它們不想自己又被侵犯的感覺,而是ECMA也想提現(xiàn)是自己提出并且制定了標準亿虽,所以要帶上自己的一點色彩菱涤。
因此,我們可以這樣理解二者的關系洛勉,ECMAScript 是 JavaScript 的規(guī)格粘秆,而后者才是核心的東西去實現(xiàn)該規(guī)格。
ECMAScript 2015 和 ES6的關系
What is the different between ECMAScript 2015 and ES6?
很簡單收毫,它倆就是一個東西攻走。
ECMAScript 2015(簡稱ES2015)是其官方名字,而 ES6 是一個別名牛哺,泛指陋气。
在2011年, ECMA 發(fā)布了 ECMAScript 5.1 版本。
而在我最初接觸前端這個行業(yè)的時候引润,或者我們大多數(shù)人最開始寫的 JavaScript 代碼都是這個版本的。
騷動不安的開發(fā)者們痒玩,在這個版本發(fā)布以后就開始不斷地提交新的功能淳附,標準的制定者們發(fā)現(xiàn),下一版本要更新的語法功能太多了蠢古,而這也將產(chǎn)生生產(chǎn)力的變革奴曙。
所以,如我們現(xiàn)在發(fā)布產(chǎn)品一樣草讶,大功能當然要改一個大的版本號洽糟,于是開始緊鑼密鼓的著手 ES6.0 版本的開發(fā)和制定。
所以我們說的 ES6 就是指 JavaScript 語言的下一個版本堕战。
按照通常的做法坤溃,我們會在一個大版本后升級其對應的小版本,比如說:ES6.0版本嘱丢、ES6.1版本薪介、ES6.2版本...
But,標準的制定者們不想這么做越驻,他們希望這種標準的升級能夠成為一種常規(guī)的流程汁政。anybody在anytime都可以向標準聯(lián)盟提交新的提案道偷。然后,每個月這些聯(lián)盟成員會聚集在一起商議记劈、裁定我們要不要這些提案勺鸦。直到某個提案成熟了,覺得其可以正式地納入標準了目木,就把它敲定下來换途。
再但是,敲定下來的提案總得有個時間去發(fā)布更新到新的版本吧嘶窄。這些制定者們又覺得頻繁的小版本更新很繁瑣怀跛,于是,他們決定把每年的六月份定為了 JavaScript 的吉祥月柄冲,在這個月吻谋,進行一次版本的發(fā)布。
我們回顧一下现横,上面我們說到2011年 ECMA 發(fā)布了 ECMAScript 5.1 的版本漓拾。
直到2015年的6月,也是 JavaScript 歷史上的第一個吉祥月戒祠,它發(fā)布了自己的 ES6.0 版本骇两,也就是我們熟知的 ES6 。我們同時也以它發(fā)布的年份對其進行另外一種命名:ECMAScript 2015標準(簡稱ES2015)姜盈。
我們需要記住的一點就是:2015年是 ES6 的誕生年低千。
于是,后面陸續(xù)的就會有:
- ECMAScript 2016標準 ES7 (2016年6月發(fā)布)
- ECMAScript 2017標準 ES8 (2017年6月發(fā)布)
- ECMAScript 2018標準 ES9 (2018年6月發(fā)布)
每年都會有一些新的特性馏颂。
寫到這里讓我想起一句話:
優(yōu)秀的工程師都是懶的
嗯示血,他們喜歡造出各種新奇的方案去改變之前解決問題的困境和復雜度。向偉大的程序員致敬救拉!
回到我們的主題难审,我們現(xiàn)在學習和工作中用到的 ES6 ,它是 JavaScript 歷史上的一個分水嶺亿絮,它泛指在2015年更新標準以后的標準告喊,涵蓋了上面列舉到的三條標準。它被廣義的認為是“下一代的JavaScript語言”派昧。
關于語法提案的批準流程
任何人都可以向標準聯(lián)盟提案黔姜,要求修改語言的標準。
一項提案升級到標準需要渡五次劫斗锭,每次都要需要通過聯(lián)盟的嚴格審核:
- Stage 0 - Strawman (展示階段)
- Stage 1 - Proposal (征求意見階段)
- Stage 2 - Draft (草案階段)
- Stage 3 - Candidate (候選人階段)
- Stage 4 - Finished (定案階段)
一般來講地淀,如果可以渡劫到第三個階段 -- 也就是 Stage 2 階段,基本在下一個標準更新就會納入到正式的標準里面岖是。
下一篇文章將會介紹如何在一個項目中使用ES6語法帮毁。