js发展历史

最近参考了一些资料整理了下关于js有关的发展历史,后续会整理分享很多关于js的基础知识。个人觉得要学好一门语言去了解它的历史是很有必要的。

1994年 网景公司发布浏览器Navigator0.9版

谈到js发展史,可以从1994年,网景公司(Netscape)发布了Navigator浏览器0.9版开始说起,因为这是历史上第一个比较成熟的浏览器,在当时轰动一时。但是,这个版本的浏览器只能用来浏览,没有交互。客户填完所有的东西点击提交发送都需要等待后端去验证,用户体验在现在看来真的很差。网景公司急需一种网页脚本语言,使得浏览器可以与网页互动。

当时网景公司有两个选择:一个是采用现有的语言,有利于充分利用现有代码和程序员资源,推广起来比较容易;另一个是发明一种全新的语言,有利于开发出完全适用的语言,实现起来比较容易。这两个选择各有利弊,到底采用哪一个选择,网景公司内部争执不下,管理层一时难以下定决心


1995年 网景公司发明了JavaScript

1995Sun公司将Oak语言改名为Java,正式向市场推出。Sun公司大肆宣传,许诺这种语言可以"一次编写,到处运行”。

网景公司动了心,决定与Sun公司结成联盟。当时的形势就是,网景公司的整个管理层,都是Java的信徒,Sun公司完全介入了网页脚本语言的决策。网景公司认为未来的网页脚本语言必须"看上去与Java足够相似",但是比Java简单,能快速上手,并且要在即将发布Netscape Navigator 2上开发一种名为LiveScript的脚本语言,只是在发布日期前夕,网景公司为了赶上java的热度,某产品经理临时将LiveScript改名为JavaScript。

为了能在发布日期前完成开发,34岁的系统程序员Brendan Eich指定为这种“简化版Java语言”的设计师,因此他在后来被誉为“js之父”,但是,他对Java一点兴趣也没有。所以他只用10天时间设计出来了。由于设计时间太短,语言的一些细节考虑得不够严谨,导致后来很长一段时间,Javascript写出来的程序混乱不堪


1996年 三足鼎立

1996年微软发布 ie3.0的版本上实现了自己的客户端语言JScript,此时市面上出现不同的javascript版本,在微软进入后,有 3 种不同的 JavaScript 版本同时存在:Netscape Navigator 3.0 中的 JavaScript、IE 中的 JScript 以及 CEnvi 中的 ScriptEase。由于没有标准规定javascript的语法和特性,业界开始担心这样发展下去肯定会乱,这个语言的标准化显然势在必行。


1997年 标准化

于是1997年,以网景公司发布的javascript1.1为蓝本的建议提交给了欧洲计算机制造商协会也就是ECMA。该协会指定39号技术委员会来负责此事,委员会里面的成员来自微软,网景,Sun,以及其他关注脚本语言发展的公司的程序员,他们经过数月的努力完成了ECMA-262  定义一种名为ECMAScript的新脚本语言的标准。

但在此期间,网景公司发布了内置javascript1.2Netscape Navigator 4 、微软发布了内置JScrpt3.0IE4,并且都在大肆的宣扬自己的浏览器,微软宣称自己的是第一个兼容ECMA的,而网景公司则宣传ECMA在自己的发布的javascript1.1为蓝本的,现在在值得注意的是,当两家公司发布新的版本的时候,ECMAScript还未完成。所以很尴尬两家公司发布的js版本还是ECMAScript国际标准是不兼容, 1998 ISO/IEC 也采用了ECMAScript作为标准,从此以后浏览器开发商就开始致力于将ECMAScript作为各自JavaScript实现的基础与标准。



说说ECMAScript国际标准

ECMAScript被制定后,一共经过了六次改版,如果之前看过一些资料的同学可以发现很多常用规范不是在第三版定义的就是在第五版定义的,这中间究竟发生了什么故事呢?

第一版:

ECMAScript在制定第一版的时候有3个很重要的原则:

把所有和浏览器相关的代码全部删掉,这也是javascript1.2  javascript1.1 不兼容的主要原因。

要求对象和平台无关。

全面支持Unicode的编码,这是为了以后能支持多语言的开发。

可以看出Js在设计之初就不是客户端语言,所以js可以在很多平台去使用,比如node.js,甚至在很多机顶盒里也在使用js

第二版:

ECMAScript在制定第二版的时候其实没做什么修改,只是进行整理。

第三版:

直到第三版的时候才真正去定义JavaScirpt,我们现在常用的很多都是在第三版进行定义的,也就是ES3。

第四版:

到第四版的时候,大家都发现js非常强大,所以在第四版的时候要加入很多新的特性,新的数据结构,对第三版进行了大量的修改,这就导致了第四版几乎要成了一门新开发的语言,委员会里的成员意见就开始出现分歧,有的人支持第四版进行大改动,而有的人建议做成3.1的版本进行小范围的修改,最后更多的人赞成不做大范围的修改,导致ECMAScript没有第四版了,而3.1版最终因为一些原因也没有发布。

第五版:

由于前面的原因,3.1版本演变了后面的第五版本,也就是我们常说的ES5。

第六版:

2015年6年 正式发布了ES6,它的目标是使js可以用来编写复杂的大型应用程序,成为企业级开发语言。


这里说到的ECMAScript 只是JS里的一部分内容,一个完整的JavaScipt应该包括:

  • 核心(ECMAScipt
  • 文档对象模型(DOM)  
  • 浏览器对象模型(BOM)


附:DOM 的发展

说起DOM的历史可以追溯至1990年代后期微软与网景公司的“浏览器大战”,双方为了在JavaScriptJScrip一决生死,于是大规模的赋予浏览器强大的功能。微软在网页技术上加入了不少专属事物,使不少网页使用非微软平台及浏览器无法正常显示。DOM即是当时蕴酿出来的杰作。

对于开发人员来说,如果想继续保持web跨平台的天性,就必须额外多做一份工作,如果不对微软和网景公司进行控制,web开发领域就会出现技术上的两强割据,浏览器互不兼容,这时,负责制定Web通信标准的W3C开始着手规划DOM。当然DOM不止是针对Javascript,很多其他的语言也有实现DOM。但基于ECMAScript实现的DOM已经成为了Javascript语言很重要的一部分。

199810 DOM1级成为W3C的推荐标准,当阅读与DOM有关的材料时,可能会遇到参考0DOM的情况。需要注意的是并没有标准被称为0DOM,它仅是DOM历史上一个参考点(0DOM被认为是在Internet Explorer 4.0 Netscape Navigator4.0支持的最早的DHTML)。在DOM1的基础上DOM2DOM3引入了更多的交互能力,也支持了更高级的XML特性。



该文章参考并引用了阮一峰博客、百度百科等资料

你可能感兴趣的:(js发展历史)