ECMAScript的历史及发展.doc_第1页
ECMAScript的历史及发展.doc_第2页
ECMAScript的历史及发展.doc_第3页
ECMAScript的历史及发展.doc_第4页
ECMAScript的历史及发展.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ECMAScript的历史及发展解释ECMAScript是一种由欧洲计算机制造商协会(ECMA)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的扩展。 历史1995年12月太阳公司(SUN)与网景通讯公司(Netscape)一起引入了JavaScript。1996年03月网景通讯公司发表了支持JavaScript的网景导航者2.0。1996年08月由于JavaScript作为网页的客户面脚本语言非常成功,微软将之引入了Internet Explorer3.0,取名JScript。 1996年11月网景通讯公司将JavaScript提交给欧洲计算机制造商协会进行标准化。1997年06月ECMA-262的第一个版本于被欧洲计算机制造商协会采纳。并将 ECMA-262 标准取名为 ECMAScript。* JavaScript 和 JScript 与 ECMAScript 相容,但包含超出 ECMAScript 的功能。版本至今为止有三个ECMA-262版本发表,第四版正在工作中。v1 1997年06月 首版 v2 1998年06月 格式修正,以使得其形式与ISO/IEC16262国际标准一致 v3 1999年12月 强大的正则表达式,更好的文字链处理,新的控制指令,异常处理,错误定义更加明确,数输出的格式化及其它改变 v4 正在工作中.可能更明确的类的定义,命名空间等等.* 2004年6月欧洲计算机制造商协会发表了ECMA-357标准,它是ECMAScript的一个扩延,它也被称为E4X(ECMAScript for XML)。ECMA-262的关键字ECMA-262定义了ECMAScript支持的一套关键字,这些关键字标识了ECMAScript语句的开头和/或结尾。根据规定,关键字是保留的,不能用作变量名或函数名。下面是ECMAScript关键字的完整列表:break else new var typeofcase finally return voidcatch for switch whiledefault if throw deletein try do instanceof如果把关键字用作变量名或函数名,可能得到诸如“Indetifier expected”(应该有标识符)这样的错误信息。ECMA-262的保留字ECMAScript定义了一套保留字,保留字在某种意义上是为了将来的而保留的单词。因此,保留字不能被用作变量名或函数名。ECMA-262第3版中保留字的完整列表如下:abstract enum int shortboolean export interface staticbyte extends long super char finalnative synchronized class float packagethrows const goto private transient debuggerimplements protected volatile doubleimport public如果将保留字用作变量名或函数名,那么除非将来的浏览器实现了该保留字,否则很可能收不到任何错误消息。当浏览器将其实现后,该单词被看作关键字,如此将出现关键字错误。ECMAScript,正式名称为 ECMA 262 和 ISO/IEC 16262,是宿主环境中脚本语言的国际 Web 标准。ECMAScript 规范定义了一种脚本语言实现应该包含的内容;但是,因为它是可扩充的,所以其实现所提供的功能与这个最小集相比可能变化很大。Margie 将在本文中讨论 ECMAScript,并研究开发网页脚本时,如果这些网页需要在不同的 Web 浏览器中保持相同的外观且能够正常工作,我们应该牢记的几个方面。欧洲计算机制造商协会 (ECMA) 成立于 1961 年,它的成立是为了满足标准化计算机运算格式的发展需要(请参阅参考资源)。1994 年,该组织将其名称更改为说明性更强的“ECMA - 欧洲信息通信系统标准化协会”。到 2000 年 10 月为止,EMCA 的正式成员包括 Alcaltel、Avaya、Canon、Compaq、Dell、Ericson、Fujitsu/ICL、Hewlett-Packard、Hitachi、IBM、Intel/Dialogic、Microsoft、NCR、NRC、Netscape/AOL、Oki、Panasonic/Matsushita、Philips、Phone.Com、Pioneer、Ricoh、Siemens、Sony、Sun、Tenovis、Toshiba 和 Xerox。1997 年 6 月,ECMA 采用了 ECMAScript 规范的第一个版本。这个版本被提交给 ISO/IEC JTC 1 以供采用,并于 1998 年 4 月被核准为 ISO/IEC 16262。1998 年 6 月核准的 ECMAScript 规范的第二个版本只是作了一些编辑上的变动,以使它与 ISO/IEC 版本保持一致。EMCA 于 1999 年 10 月核准的第三个版本包括了许多增加和增强,并覆盖了脚本语言未来可能发展到的领域。第四个版本正在制订中,ECMAScript 技术委员会 (TC39) 最近的一次会议是在 2000 年 3 月召开的,下次会议预定在 2001 年 3 月召开。那么,什么是 ECMAScript 呢?ECMAScript 是一种开放的、国际上广为接受的脚本语言规范。 它本身并不是一种脚本语言。正如在 Web 应用程序中执行有用操作的 bean 集合(例如,Netscape 的 AWT)是 Sun 的 JavaBean 规范的一种实现一样,javascript 是 ECMAScript 规范的一种实现。脚本语言不是独立的。它是一种在宿主环境中执行任务的编程语言。宿主环境提供一个用户界面,并提供脚本语言在其中执行任务的一个“对象和工具系统”。脚本语言和宿主环境共同组成一个完整的编程环境。对于包括脚本的 Web 应用程序而言,浏览器提供用户界面,浏览器和 Web 服务器(还可能有应用程序服务器)共同提供宿主环境。ECMAScript 以在 Web 应用程序中使用的脚本语言规范为起点,但它没有将自己限制到任何一种特定的宿主环境中。尽管编写脚本也是一种编程形式,但总的来说,脚本语言必须能被非专业程序员的人员使用。 有助于脚本程序员的一些特性 - 如不必显式地声明变量类型,不必在定义之前声明函数,提供自动分号插入规则和自动类型转换 - 就是为这一目的而设计到规范中的。这使 ECMAScript 规范不像许多其他编程语言规范那样严格。ECMAScript 实现的基本要求如果您有意编写像 javascript 或 JScript 那样的一种 ECMAScript 实现,则您必须遵守 ECMAScript 规范的要求,以便声明您自己的实现是符合 ECMAScript 的(请参阅参考资源)。 这称为对规范的符合性。您的实现必须提供并支持规范中定义的全部类型、值、对象、属性、语法、语义和其他特性。这是指定的最小集,但实现不限于 ECMAScript 最小集。ECMAScript 中的字符必须按照 Unicode 标准 2.1 或更高版本进行解释。Unicode 字符可用转义序列编写,规范说明了这些转义序列的正确解释。换行符 () 的转义序列是 u000A,其中 000A 是 Unicode字符的四位十六进制值。 您可以用下面这个语句在脚本的 Unicode 输出中添加一个空行:document.write(u000A);但是,您必须明白各种 Web 浏览器对此提供的支持级别,因为这将影响 Unicode 转义序列在这些浏览器中的表示。Microsoft 的 Internet Explorer 版本 4 (IE4) 通过支持四位十六进制值完全实现了 ECMAScript 对 Unicode 转义序列的要求,但 Netscape 的 Navigator 版本 4 (NE4) 通过支持转义序列的两位十六进制值 Latin-1 编码部分实现了 ECMAScript 要求。 在用于 NE4 的脚本中添加同样的空行的命令如下所示:document.write(x0A);因为符合 ECMAScript 的实现不限于规范的最小集,所以它可以提供其他的类型、值、对象、属性和函数。它还可以为已在最小集中存在的对象添加属性和值。对于您自己的实现而言,实际上鼓励您扩展最小集。规范提供一组“将来的保留字”来支持符合规范的实现用它们创建新的程序语法。稍后,我们将考察 javascript 1.2 和其他脚本语言扩展最小集的几种方法。我们还将快速查看一种符合 EMCAScript 的开放源码解释器,以及 ECMAScript 在 Apache XML Project 中所起的作用。ECMAScript 程序是一组彼此通信的对象。这些对象是由脚本语言自身和宿主环境提供的。每个 ECMAScript 对象是一个未排序的特性集合,每个特性有零个或多个属性。属性决定特性的用法。特性是一个容器,它包含其他对象、基本值或者方法。基本值的类型既可以是 Undefined、Null、Boolean 或 Number,也可以是 String。某些对象,如 Array 和 Date,是内建的。如果您了解 Java,则 ECMAScript 规范的某些部分对您来说将比较熟悉,因为该语言的语法有意模仿了 Java 的语法。 另一方面,ECMAScript 是基于对象的,但却没有类。 与 Java 创建的对象继承自类不同,ECMAScript 的对象是由构造函数创建的,而构造函数使用的是基于原型的继承。除非对象直接包含的一个特定特性也是其原型的一个特性,否则它将与原型共享特性以及它们的值。如果您创建了几个对象,而且它们都是从同一个原型构造而来的,则您可以通过在原型中添加一个新特性来将这个特性添加到所有这些对象中。因为这些对象都指向它们的共享原型,所以它们可以获得(或共享)原型的这个新特性。当然,可用一组内建的操作符,称为 punctuator,来处理对象。有用来进行加、乘、移位、确定关系和相等、以及我们希望一种编程语言所具有的任何其他操作的的操作符。ECMAScript 规范中两个更有趣的定义是无限大(可正可负)和零(可正可负)。被无限大除和被零除都有定义,而不是错误!ECMAScript 将怎样发展?ECMAScript 永远不会被制订成一种静态规范。随着 ECMAScript 实现的发展,一些特征将被提议包括到规范的下一个版本中。人们正在开发基于 ECMAScript 的工具。ECMAScript 与其他标准和技术的结合正在引发一些新的发展方向的思想。javascript 和 JScript这两种脚本是 ECMAScript 最小集的超集。javascript 现在的版本是 1.4,它包括类似 frameset 和“URL 处理”这样的增强。JScript( 现在的版本是 5.5)也对其核心语言作了许多增强,其中的部分增强只针对 IE4 及其更高版本,如 Dictionary 和 TextStream 对象。当然,这些增强了带来了难以处置的情况,即要知道哪种浏览器的哪个版本支持哪些增强。 有时您可以让浏览器告诉您它是哪个版本。有时您可以让脚本语言告诉您它是哪个版本。有时,如果必须使网页的行为在支持脚本的所有宿主环境中保持一致,则只能坚持用 ECMAScript 级的功能。FESI InterpreterFESI,或者 Free ECMAScript Interpreter,是由 Jean-Marc Lugrin 开发的一种开放源码的 ECMAScript 解释器(请参阅参考资源)。它与 Java 紧密集成在一起,如果要说明如何将 ECMAScript 用作构建工具和灵活测试环境的基础,这也不失为一个很好的例子。另外,正如我们将在下面的 Xang 中看到的那样,FESI 本身也是构建其他工具的一个基础。Apache XangXang 是 Apache XML Project 现在的七个子项目之一。 其目的是用 javascript 提供动态服务器页面的快速部署,Xang 体系结构明确地将数据、逻辑和表示分离开(请参阅参考资源)。它基于开放的行业标准,如 HTTP、XML、XSL、DOM 和 ECMAScript。通过确保应用程序的服务器页面理解 XML,Xang 使开发人员能够快速构建数据驱动的跨平台 Web 应用程序,这些应用程序将完全不同的(不同格式的)数据源集成在一个统一的层次结构中。使用 Xang 需要一个 Web 服务器、一个 Java servlet 引擎、Apache Xang Engine、Apache Xerces XML Parser、Apache Xalan XSLT Processor 和 FESI (Free ECMAScript Interpreter)。与 Apache XML Project 中的所有其他子项目一样,欢迎任何有意为 Xang 子项目做贡献的人员参

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论