相信做前端的朋友没有不知道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年。然后它里面到底包含什么内容呢,就是咱们下一篇文章要讲的内容。
文章来源:北大青鸟官网 HD089455