有人说喜欢一个人,没必要了解她的过去,然而想读懂一个人,却需要了解她的过去。JavaScript自1995年诞生以来已过去了16个年头,如今全世界无数的网页在依靠她完成各种关键任务,JavaScript曾在Tiobe发布的编程语言排行榜中排到了第8名,紧随C#,JavaScript从过去装饰性的一种脚本语言转变为主流的编程语言,人们用它来开发更大更复杂的程序,这就需要Web开发人员更深入的了解JavaScript,了解它的过去、现在和未来。

美高梅电子游戏 1

JavaScript历史简述

美高梅电子游戏,图片来源于网络

大概在1992年,一家称作Nombas的公司开始开发一种叫做C减减(C-minus-minus,简称Cmm)的嵌入式脚本语言。这个脚本语言捆绑在一个叫做CEnvi的共享软件产品中,当Netscape
Navigator崭露头角时,Nombas开发了一个可以嵌入网页中的CEnvi的版本。这些早期的试验称为Espresso
Page(浓咖啡般的页面),它们代表了第一个在万维网上使用的客户端脚本语言。而Nombas丝毫没有料到它的理念将会成为因特网的一块重要基石。

01

当网上冲浪越来越流行时,对于开发客户端脚本的需求也逐渐增大。当时工作于Netscape的Brendan
Eich,开始着手为即将在1995年发行的Netscape Navigator
2.0开发一个称之为LiveScript的脚本语言,当时的目的是同时在浏览器和服务器端使用它。Netscape与Sun公司联手及时完成LiveScript实现。就在Netscape
Navigator
2.0即将正式发布前,Netscape将其更名为JavaScript,目的是为了利用Java这个因特网时髦词汇。Netspace的赌注最终得到回报,JavaScript从此变成了因特网的必备组件。

上大学的时候,有个同学和我说,高中那会他们班那个坐在教室的最后一排的女同学,每回考试前她总是啃着青瓜看着报报纸悠哉悠哉。我嘿嘿一笑,这肯定是个不学好的姑娘。她摇摇头,简单粗暴地来了一句:她可在清华!

ECMAScript标准

这个“不学好”的姑娘成绩是班级的第一,也是年段第一。即使在别人争分夺秒埋头苦学的时候,她依旧轻轻松松考第一。很多人说她肯定在我们看不见的地方努力着。但是,谁知道呢?有时候上天总会眷顾个把幸运的人。

因为JavaScript 1.0如此成功,Netscape在Netscape Navigator
3.0中发布了1.1版。恰巧那个时候,微软决定进军浏览器,发布了IE 3.0
并搭载了一个JavaScript的克隆版,叫做JScript(这样命名是为了避免与Netscape潜在的许可纠纷)。微软步入Web浏览器领域的这重要一步虽然令其声名狼藉,但也成为JavaScript语言发展过程中的重要一步。

我们普通人即使再怎么悬梁刺股,卧薪藏胆,也赶不上这样的好运带来的荣耀和周围羡慕的眼光。

在微软进入后,有3种不同的JavaScript版本同时存在:Netscape Navigator
3.0中的JavaScript、IE中的JScript以及CEnvi中的ScriptEase。与C和其他编程语言不同的是,JavaScript并没有一个标准来统一其语法或特性,而这3种不同的版本恰恰突出了这个问题。随着业界担心的增加,这个语言标准化显然已经势在必行。1997年,JavaScript
1.1作为一个草案提交给欧洲计算机制造商协会(ECMA),由来自Netscape、Sun、微软、Borland和其他一些对脚本编程感兴趣的公司的程序员组成的TC39锤炼出了ECMA-262,该标准定义了叫做ECMAScript的全新脚本语言。从此,Web浏览器就开始努力(虽然有着不同程度的成功和失败)将ECMAScript作为JavaScript实现的基础。

02

尽管ECMAScript是一个重要的标准,但它并不是JavaScript唯一的部分,当然,也不是唯一被标准化的部分。实际上,一个完整的JavaScript实现是由以下3个不同部分组成的

新来的同事前几天买来一大推水果。前段时间,她嚷嚷着要找男票。我们以为她终于摆脱单身了。她说:她的表弟考上了北大,她高兴。

•核心(ECMAScript)——JavaScript的核心ECMAScript描述了该语言的语法和基本对象

我们沾着她表弟的光,像炫耀自己亲弟弟夸奖这个素昧平生的人家的表弟。

•文档对象模型(DOM)——DOM描述了处理网页内容的方法和接口

几个月之后,她眉头紧锁地叽叽咕咕着:学霸的世界我们不懂。

威尼斯2017娱乐官网 ,•浏览器对象模型(BOM)——BOM描述了与浏览器进行交互的方法和接口

她的北大表弟已经休学,准备高复。理由是专业不喜欢。

JavaScript版本历史

学霸就是可以这么任性。今年上北大,明年逛清华。

由于历史原因及技术的不断发展,JavaScript版本众多,各种浏览器的实现情况也不一样,笔者根据各方面的信息整理了一下JavaScript的各个版本及对应浏览器的实现情况,这也是这篇文章的主要目的,欢迎大家提供意见,一起完善。

我想,和他们的差距不仅仅是隔着一个名校的距离,而是他们清晰地明白自己的定位,什么是喜欢的,什么是适合自己的,然后在别人迷茫时毫不犹豫地调整方向。

版本 发布日期 基于 Netscape Navigator Mozilla Firefox Internet Explorer
1.0 1996年3月   2.0   3.0 (JScript 1.0)(1996年8月)
1.1 1996年8月   3.0   3.0 (JScript 2.0)(1997年1月)
1.2 1997年6月   4.0-4.05    
1.3 1998年10月 ECMA-262 第一版 (1997年6月发布)/ ECMA-262 第二版 (1998年6月发布) 4.06-4.7x   4.0 (JScript 3.0)(1997年10月)
1.4     Netscape Server Only   JScript 4.0 (Visual Studio 6, no IE release)
5.0 (JScript 5.0)(1999年3月)
1.5 2000年11月 ECMA-262 第三版 (1999年12月发布) 6.0 1.0 5.5 (JScript 5.5)(2000年7月)
6 (JScript 5.6)(2001年10月)
7 (JScript 5.7)(2006年10月)
8 (JScript 5.8)(2009年3月)
1.6 2005年11月 1.5 + Array extras + Array and String generics + E4X   1.5  
1.7 2006年10月 1.6 + Pythonic generators + Iterators + let   2.0  
1.8 2008年6月 1.7 + Generator expressions + Expression closures   3.0  
1.8.1 2009年6月 1.8 + Native JSON support + Minor Updates   3.5  
1.8.2 2010年7月 1.8.1 + ECMAScript 5 Compliance   4 9
2.0 制定中 ECMAScript Harmony      

03

特别说明:

我灰溜溜地想起了曾经有一个傻×一样的姑娘,明明适合文科,却在高二分班时候想也不想地跟着大表姐报了理科,结果学物理时候苦逼到想买块豆腐撞死算了,高考结束那年填报志愿,在大表姐家的餐桌上,又想也不想地填报了她就读的学校和专业。

1.当Netscape 将它的源代码作为Mozilla 项目公布于众时,本来计划JavaScript
1.4 将会嵌入到Netscape Navigator 5.0
中。然而,一个冒进的决定——要完全从头重新设计Netscape
的代码,破坏了这个工作。 JavaScript 1.4 仅仅作为一个Netscape Enterprise
Server 的服务器端脚本语言发布,以后也没有被放入浏览器中。

没错,这个傻×就是我。大一那会,我住进了大表姐的那栋宿舍楼,她大四。

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章