前言
相信做前端的朋友沒有不知道ECMAScript6的,都知曉ES6新增了不少新的特性,但是你知道ES6是怎麼來的嗎?今天就讓閏土來帶大家大話ES6的前世今生。當然了,這篇文章會以掃盲為主,科普為輔,大家就看著玩。
那麼接下來,正文從這開始~
什麼是ES6
既然今天我們們文章的主旋律是ES6,那麼就花點時間來介紹點關於它的花邊新聞,來看看ES6到底是一個怎麼樣的語言。首先呢,大家對ECMAScript應該有所瞭解,它和JavaScript到底是什麼關係呢?其實你可以這麼理解,ECMA其實是一個組織,一個標準化的組織,就好比說有組織叫W3C,有人叫中南海一樣。它其實也是一個標準,由ECMAScript誕生的一個標準,有點類似於HTML5一樣是標準,IE10,Chrome,FireFox都是它的實現。
換句話來講,ECMAScript理論上可以有很多種實現,只不過目前這個時代來講,也沒人去實現,只有我們們的JavaScript是實現了的。所以說在某種程度上來說,ECMAScript就約等於我們們的JavaScript。其實理論上大家應該明白,可能我個人搞個runtuJS,可能也是遵循ECMAScript標準來實現的(當然我沒有那個本事)。
其實,ECMAScript有些人把它簡稱為ECMA,也有些人把它簡稱為ES6,怎麼叫的都有,就這麼個語言,只要我們們把它是怎麼個叫法搞明白了就行。
ES6的歷史版本演進
那接下來,我們先不講事兒,繼續講講ES6的花邊新聞。我們們來聊聊這門語言的歷史版本的一個演進。雖然你知道了這個事情對你的程式設計沒有什麼幫助,但是公司裡面哥幾個出去吃串喝酒的時候可以聊聊當做談資,平時除了聊什麼吐槽工作吐槽老闆之外,還能順便吐槽下“ECMAScript老不靠譜了”,哈哈~
基本上來說,它的版本是有一個歷史時間軸的,最早可以追溯到1996年11月份,我估計我們們童鞋裡面當時有人甚至還沒有出生呢!在那個年代呢,ECMAScript推出了所謂的1.0,這個版本還是蠻關鍵的,標誌著JavaScript這個指令碼語言已經穩定了。你可以理解為在之前,JavaScript純粹是瞎搞好吧,想怎麼搞怎麼搞,後來ECMAScript看這個事情不靠譜啊,不能任由你JS瞎搞啊,就推了標準1.0,然後呢這個Netscape(俗名網景公司)將JavaScript提交給了ECMA組織,然後ECMA一看這個東西不錯,然後 ES 就正式出現了。
1996年之後又過了不到兩年的時候,這邊又釋出了2.0,接下來1999年又過了半年的時間,又釋出了3.0,可以這麼說,ES從誕生到正式被大眾接受是從ES3開始才被廣泛地支援。之前可能是自己娛樂為主,大家來旁觀為輔。
然而,好景不長。你知道的,如果一個人的路走得太過於平坦的話,十有八九,接下來就要倒黴了。你看ECMAScript剛剛樂呵沒幾年,這個時候它又推出了一個新標準4.0。但是4.0當時太過於激進了,其實4.0 放到現在倒沒什麼太大問題,反正當年的時候太過於激進了,然後大家都接受不了,表示不行,這事兒臣妾做不到。最後怎麼辦呢結果就廢棄一旁了,廢了之後也沒人再提這個事兒。
雖然沒人再提這個事兒,但是時代在發展,事情總得有人做。所以就有人提了一個3.1,就是在3.0的基礎上做了一些簡單的改進,4.0就直接退化到了3.1。但是當時人們還是不樂意,因為吵得太厲害,所以ES乾脆給3.1起了個代號:Harmony,翻譯成漢語就是和諧。從這個事情上就可以看出,ES還是挺有人情味的組織,大家不要吵了,都和諧點,做人嘛最重要的就是開心撒,為了這個事兒至於嗎,走,一起擼個串去就沒事了。
再到後來呢,09年的時候,ES又推了個5.0,然後 5.0 在 3.1的基礎上沒有做太大的改進,只是增加了幾個小小的東西,比方說,就像是我們陣列的indexOf,單純地增加了一些小東西,並且這個時候又另外發布了一樣東西,JavaScript.next,當然這名字是變動的,不是定死的,當年這個東西就是指向後來的ES6.0。
ES6的粉墨登場
到後來又過了兩年,ES5.1又出來了,5.1也是進行了一些很簡單的改進,然後ES5.1正式成為了ISO的國際標準。你就想想你們老家那個工廠大門口掛著牌子寫著IS9000啥的老光彩了,光宗耀祖的事情,祖墳上估計都冒青煙了。反正一旦被這個ISO組織接受了確實是一件挺好的事兒。5.1是事實上的一個標準,並且沿用了好多年。後來13年的時候,ES6草案算是基本定稿了,話說是兩撥人該掐掐完了該吵也吵完了,沒什麼可吵的了,草案算是最終定稿了。基本上草案定稿了就沒什麼事兒了,也就不會再出什麼么蛾子了。然後過了那麼8,9個月,這幫人一看沒人提什麼意見,就跟我們們現在辦事得先在報紙上公示,公示完一看,哎沒人反對,於是ES6草案就直接釋出了,從這個時候算起,ES6算是真的定稿了。當然,真正等它火起來,也是2015年到2016年的事兒了,那就是後話了。
然後15年的時候,ECMA組織又做了一件事兒,ES6正式的釋出了,和草案沒什麼變化,就是走個過場而已。然後JavaScript.next 也正式的指向了ES7,也就是現在所謂的下一代JavaScript。
後記
綜上所述,ES6的歷史演進就是一個不斷吵架不斷趨於和諧的過程。在這個過程中,其實有幾個比較重要的版本,一個就是5.1,是國際上正式的標準,基本上來說我們們用的比較多的就是它,它跟3.1區別不是特別大,幾乎沒什麼區別。還有一個比較大的版本就是ES6,它是2015年正式誕生的。
反正聊聊這個關於ES6的小故事,你說有多大作用呢,大家就看著玩,宋小寶的小品看膩了,就來看看我的文章,我們們就稍微那麼一聊,放心我不會要求大家請我吃串喝酒的,哈哈。總之一句話,這篇文章的核心思想就是我們們知道了ES6的誕生,是在2015年。然後它裡面到底包含什麼內容呢,就是我們們下一篇文章要講的內容。
大話前端系列文章較長,未完待續。
想第一時間閱讀我的文章,或者瞭解我的更多動態,歡迎關注我的公眾號:閏土大叔。