02 ECMAScript那些事儿

1. ECMAScript的诞生

  书接上回,话说浏览器大战如火如荼之际,网景联合Sun公司,祭出JavaScript这一神器,让网景的导航者浏览器扳回一局。微软当然不能坐视不理,于是优雅地克隆了JavaScript,取名JScript。浏览器的战场又开始变为在脚本程序语言这一领域开打。神仙打架,凡人遭殃。可苦了程序员了,这意味着,同一段代码,要为不同的浏览器分别开发不同的版本。几家大厂也觉得不能这么干,内卷啊。
  1996年,网景将JavaScript提交给欧洲计算机制造商协会(ECMA)进行脚本程序语言的标准化。这个组织是1994年成立的,负责和相关的组织一起制定通信、电子、计算机等方面的技术标准,有硬件也有软件,比如只读光盘的尺寸标准,C#语言规范等。ECMA组成第39号技术专家委员会,简称TC39,成员当然主要是当时的浏览器大厂如微软、网景等。他们对脚本语言进行了标准统一,并形成了标准的技术文档,该文档编号262,所以也叫做ECMA-262。网景当然是希望标准的脚本语言就叫JavaScript,但微软肯定不干嘛,而且JavaScript也已经被他们自己注册了商标,所以最后标准脚本语言的名称被叫做ECMAScript,以后我们简称ES。
ECMA-262
  新生事物一般没有那么快被接受,直到1999年,ES3推出,这算是第一个被几乎所有浏览器接受并支持的版本,ES由此发展了起来。
  2007年,ES4草案发布,但由于变动太大,比较激进,TC39内部产生了严重分歧,说白了就是雅虎、微软、谷歌等大厂不同意以艾奇同志为首的Mozilla的提案,眼看要打起来了,ECMA决定,终止ES4正式版的发布。
  时间来到了2009年,上一个版本ES3已经用了快10年了,一是不更新就说不过去了,二是这时的互联网发生了很大的变化,2007年iphone诞生,2008年android诞生,移动互联网时代宣告到来,再不改改就跟不上时代了。于是ECMA在这年发布了ES5版本。
  2015年,时机成熟,ES6版本发布,增加了很多新的特性,也更能符合当下浏览器的需要,这是ES历史上一次重大改进。
  ECMA觉得太长时间更新一版不太符合当下的时代节奏,决定从此以后每年更新迭代一次,走小步快跑的模式。名称也将从ES7开始,以年份命名,比如ECMAScript2016就是ES7,以此类推。

2. JavaScript和ECMAScript的关系

  既然知道了ECMAScript是怎么来的,那我们就能理清JavaScript和它的关系了。我们可以从这几点来说:
(1)先有谁,后有谁?
  先有JavaScript,JScript等诸侯割据一方,后有大家坐下来谈,拥立ECMAScript为共主,当然,也可能还会再打起来,ECMA把ES4的项目代号取名Harmony,什么意思,你查查😀。
(2)谁包含谁?
  JavaScript包含ECMAScript,但又在此基础上增加了DOM和BOM,比如DOM实现了事件,BOM能获知浏览器尺寸。
JavaScript的组成部分

(3)谁是具体实现?
  JavaScript,它是网景浏览器中,对ECMAScript这一脚本语言标准的具体实现。但也有其他家实现了ES的。
  明确一点,ECMAScript只是个脚本语言的标准,它不是一定要在浏览器实现的哦,浏览器只是它的一个宿主而已,比如曾经如日中天的Flash就能运行ECMAScript,它当时的脚本语言名字叫ActionScript,当然了,Flash大部分情况也是在浏览器运行的,未来有没有什么新物种,也能成为运行ECMAScript标准的容器我们不得而知,但理论上ECMAScript标准是开放的,并没有说只能在浏览器上实现。
  如果把ECMAScript比作普通话,那么JavaScript、JScript、ActionScript等就是方言,这就是他们的关系。
JS与ES的关系
  那我们为什么总提JavaScript而不提其它的呢?因为它名气最大,也是鼻祖,所以它就成为所有ECMAScript方言的一个泛称而已。

3. 浏览器的引擎

  浏览器有两个引擎:
(1)渲染引擎
  也叫HTML排版引擎,负责把HTML、CSS代码渲染成我们能看到的各种文字、图形等,通常说的浏览器内核指的就是它。比较火的是Webkit
(2)JavaScript引擎
  解释运行JavaScript,比较火的是V8
浏览器主要引擎
  今天,谷歌的chrome浏览器已经取代微软的IE,成为浏览器的霸主了。而我们以后的代码学习和调式,也主要以该浏览器进行。


[1] ECMA-262,https://www.ecma-international.org/publications-and-standards/standards/ecma-262/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值