JavaScript版本迷局

  有人说欣赏一个总人口,没必要通晓其的过去,不过想读懂一个人口,却待了然它的仙逝。JavaScript自1995年降生以来就病故了16只新春,如今世多之网页在因它成就各种关键任务,JavaScript都在Tiobe发表的编程语言排名榜中革除至了第8誉为,紧随C#,JavaScript从过去装饰性的同样种植脚本语言转变吗主流的编程语言,人们之所以它们来支付再可怜复复杂的先后,这就需要Web开发人员更透彻的垂询JavaScript,了然其的病逝、现在以及以后。

 

JavaScript历史简述

 

  大概在1992年,一小叫Nombas的店堂开开发同种叫做C减减(C-minus-minus,简称Cmm)的嵌入式脚本语言。这么些脚本语言捆绑于一个称CEnvi的共享软件产品被,当Netscape
Navigator崭露头角时,Nombas开发了一个足以松手网页遭到之CEnvi的版。这个中期的考试称为Espresso
Page(浓咖啡般的页面),它们代表了第一独以万维网上利用的客户端脚本语言。而Nombas丝毫尚无料到其的意见将会见化因特网的一模一样块要水源。

 

  当网上按照浪越来越流行时,对于开发客户端脚本的需求为逐步增大。当时干活为Netscape的布伦达n
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实现之基本功。

 

  固然ECMAScript是一个至关紧要的规范,但它们并无是JavaScript唯一的片,当然,也非是绝无仅有让规范的片段。实际上,一个完好无缺的JavaScript实现是由以下3个不等部分构成的

  •主题(ECMAScript)——JavaScript的主题ECMAScript描述了拖欠语言的语法和着力对象
  •文档对象模型(DOM)——DOM描述了拍卖网页内容的艺术以及接口
  •浏览器对象模型(BOM)——BOM描述了同浏览器举行互的方法及接口

 

JavaScript版本历史

 

  由于历史由来和技术的穿梭升华,JavaScript版据群,各种浏览器的兑现动静为无平等,笔者按照每方面的消息整理了一晃JavaScript的依次版本与相应浏览器的兑现动静,这也是就首著作的首要目的,欢迎我们提供意见,一起到。

 

版本 发布日期 基于 Netscape Navigator Mozilla Firefox Internet Explorer Opera Safari Chrome
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 3.0, 3.1
1.7 2006年10月 1.6 + Pythonic generators + Iterators + let 2.0 3.2, 4.0 1.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.5 2010年7月 1.8.1 + ECMAScript 5 Compliance 4 9
2.0 制定中 ECMAScript Harmony  

 

专门表达:

  1.当Netscape 将其的源代码作为Mozilla
项目揭发时,本来计划JavaScript 1.4 将会师坐到Netscape Navigator 5.0
中。不过,一个冒进的控制——要统统从头又规划Netscape
的代码,破坏了之工作。 JavaScript 1.4 单纯看做一个Netscape Enterprise
Server 的劳务器端脚本语言发表,未来也从没叫放入浏览器中。 

  

  2.E4X(ECMAScript for
XML)是同一种植于ECMAScript(见ECMA-262,包括ActionScript、JavaScript等语言实现)标准的基本功及出席的动态XML扶助之程序语言扩大。E4X的目标是作为DOM接口之外的另一个选。它可使程序员在ECMAScript脚论中通过重复精简之语法来做客XML文档。同时,它吗为兑现脚本中XML可视化提供了扳平种植新章程。

 

  3.于 IE 5.5
版本宣布先河,微软就平昔不革新了它们按照浏览器的JavaScript实现政策,但在.NET
Framework 中含了JScript.NET作为ECMAScript
4的贯彻,其中添加了有些一定于微软的效率,它不可能当做客户端脚本语言在IE中运用,只可以用当ASP.NET中当劳务器端语言或独立应用程序来用。与另的JavaScript版本不同,JSscript.NET是编译型语言,可以单独的可执行文件。

 

  4.ECMAScript Harmony其实是带有JavaScript
2.0当外之ECMAScript第四本子的一个现新命名(将来恐是ECMAScript第六版?),ECMAScript第五版虽是单独开发的ECMAScript
3.1言语的后期命名。

 

  5.近日,所有的主流 Web 浏览器都坚守 ECMA-262
第三本,即实现的凡JavaScript 1.5版,JavaScript 1.6-1.9才是ECMAScript
(JavaScript on Gecko)升级至JavaScript 2.0底临时代号。 

检测JavaScript版本

  

点击测试按钮可以测试你眼前浏览器帮助的JavaScrpt版本,在IE8中测试,指示说协理之本子是1.3,奇怪?

<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
http://www.w3.org/TR/html4/loose.dtd"&gt; <html> <head>
<title>Determine JavaScript Version</title> <style
type=”text/css”> html, body { margin: 0; padding: 0} </style>
<script language=”javascript”> var jsversion = 1.0;
</script> <script language=”javascript1.1″> jsversion = 1.1;
</script> <script language=”javascript1.2″> jsversion = 1.2;
</script> <script language=”javascript1.3″> jsversion = 1.3;
</script> <script language=”javascript1.4″> jsversion = 1.4;
</script> <script language=”javascript1.5″> jsversion = 1.5;
</script> <script language=”javascript1.6″> jsversion = 1.6;
</script> <script language=”javascript1.7″> jsversion = 1.7;
</script> <script language=”javascript1.8″> jsversion = 1.8;
</script> <script language=”javascript1.9″> jsversion = 1.9;
</script> <script language=”javascript2.0″> jsversion = 2.0;
</script> </head> <body> <div> <script
language=”javascript”> document.write(‘Your browser claims to support
JavaScript ‘ + jsversion) </script> </div> </body>
</html>

 

参考情节:

1.JavaScript高等程序设计

2.http://en.wikipedia.org/wiki/Javascript\#History

3.http://en.wikipedia.org/wiki/ECMAScript\#Version\_correspondence

4.http://ejohn.org/blog/versions-of-javascript/

5.https://developer.mozilla.org/en/JavaScript/Guide/JavaScript\_Overview