第一章 Javascript概述 JavaScript是一种轻型的、解释型的程序设计语言,而旦具有面向对象的能力。该 语吉的通用核心已经嵌人了 Netscape、 Internet Explorer和其他的Web测览器中 而凵它能用表示Web浏览器窗∏及其内容的对象使Web程序设讣增色不少。 Javascript的客户端版本把可执行的內容添加到∫网页中,这样·来,网页就不再 是静态的HTML了,而是包含与州户进行交的程序、控制浏览器的程序以及动态 创建HTML内容的程序 在句法构成上, Javascript的核心语言与C、C++和Java相似,都具有诸如迁语句、 whle循环和&运算符这样的结构。但是、 JavaScript与这些语言的相似之处也仅 限于句法上的类同。 Javascript是一种无类型语言,这就是说,它的变量不必具有 一个明确的类型。而且,与其说 JavaScript的对象和C屮的结构或C++和Java中的 对象札似,不如说它更像Perl语言中的关联数组。另外, Javascript面向对象的猁 承机制与Seif和 Newton Script相似(这两种语言都不太为人知),它们的继承机制 与C+-和Jaa中的继机制大相径庭。 JavaScript还有-点与Perl语言类似、那就 是它们都是解释型的语言。除此之外, Javascript还有多处灵感都来源于Perl语言, 诸如正则表达式和以数组处理的特性。 本章是对 Javascript的·个概览,它解释了 JavaScript能够做什么和不能够儆什厶, 并且澄清了对这种语言的-些误解。它还区别了 JavaScript的核心语言的嵌入版本 和扩展版本,例如客户端的 JavaScript是嵌入网页中的,而服务器端的 Javascript
第一章 则是嵌入 Netscape网络服务器中的(本书介绍了 JavaScript的核心与客户端的 Javascript)。另外、本章还川客户端 Javascript程序的一些例子说明了真正的网络 程序设计是怎样的 1.1对 Javascript的误解 JavaScript是个相当容易误解和混淆的主題。在对它进行进一步的硏究之前,有 必要澄清一些长期存在的有关该话言的误解。 1.1.1 JavaScript并非J 对 Javascript最常见的误解是认为它是 Sun Microsystems公司的程序设计语言Jva 的筒化版本。但是除了句法上有一些相似之处以及都能够提供劂中的可执行内容 之外, JavaScript和Java是完全不相干的。相似的名称纯粹是-种行销策略罢了(该 语言最初被称为 Live Script,只是到最后才被改为 JavaScript)。 但是 JavaScript和Java这两种语言却是很好的搭档。它们的特性集合是不相同的。 JavaScript可以控制浏览器的行为和内容,但是却不能绘图和执行连网。而Java虽 然不能在总体上控制浏览器,但是却可以进行绘图,执行连网和多线程。客户端的 JavaScript可以与嵌入网页的 Java applet进行交互,并且能够对它进行控制,从这 一意义上说, JavaScript真的可以脚本化Java(详见第二十二)。 1.12 Javascript并不简单 Javascript是作为-种脚本语言而不是作为一种程序设计语言来推广的,其中的差 别在于脚本语言比较筒单,它们是给非程序员提供的程序设计语言。实际上, JavaScript最初出现的时候相当简单,其复杂程度大概与 BASIC相同。它确实有许 多特性可以使它更加活,让程序设计新于更加容易使用。非程序设计者可以使用 JavaScript来执行有限的、按部就班的程序设计任务。 但是,在简单的外表之下, Javascript却是一种具有丰富特性的程序设计语言,它 和其他所有语言…样复杂,甚至比某些语言还复杂得多。如果一个程序者对 Javascript没有扎实的理解,那么当他要用 JavaScript执行较复杂的任务时,就会发
JavaScript概述 现整个进程闲难币重。因此,木书对 JavaScript进行了完整的介绍.以便你能个面 地理解它。 12 JavaScript的版本 JavaScript语言已经发展儿年了, Netscape公司发布了该语言的多个态 Microsoft 公可也发布了 Javascript诰言的相似版本,名为 JScript。另外,ECMA(hrp:/ ww.ecma,ch)发布了三个版本的ECMA262标准,该标准标准化了 JavaScript ,但采用的却是个蹩脚的名字 ECMAScript 表1-1列出了这些版本,并且解释了它们的关键特性和各个版本之间的关联方法。本 B用 Javascript来引川这些版木中的一个,包括 Microsof公司的 Jscript.当特别地 川 ECMAScript时,则使川术语ECMA262或ECMA 表1-1: Java Script的版本 版本 说明 JavaScript I0该言的原始版本,目前基本上已经被废弃。出 Netscape2实现 JavaScript 1.1 引入了真正的Aray对象,消除了大量重要的错误。由 Netscape3实 JavaScript 1.2 引入了 switch语句、止则表达式和大量其他特性.基本上符合 ECMAV1、佃是还有一些不兼容性。由 Netscape4实现 Javascript1,3修正了 Javascript2的不兼容性,符合 ECMA VI,出 Netscape4.5 实现 JavaScript14只在 Netscape的服务器产品中实现 JavaScript 1.5 引入了异常处理,符合 ECMA V3。由 mozilla和 Netscape6实现 JScript 1.0 基本上相当于 JavaScript I.0,由旧E3的早期版本实现 2.0 某本:相当于 JavaScript I.1,由L3的后期版本实现 JScript 3.0 基本上相当」 Javascript1.3,符合 ECMA V1由4实现 JScript 4.0 还没有任何Web浏览器能实现它 JScript 5.0 支持异常处理。部分符合 ECMA V3。由E5实现
第一章 表1-1: Javascript的版本(续) 版本 说明 JScript 5.5 基本上相当下 Javascript1.5元全符合 ECMA V3。由IE55和E6 实现(IE6实际实现的是 JScript5.6,但足 JScript5.6和客户端 JavaScript程序没计者相关的部分与5.5没有区别) ECMA VI 该语言的第一个标准版本,标准化了 JavaScript!.1的基本特性,并 添加了…些新特性。没有标准化 switch语句和正则表达式 Javascript I.3和 JScript3.0的实现‘致 ECMA Y2 友标准的维护版本,添加了说明、但没有定义任何新特性 ECMA V3 标准化了 switch语句,正则表达式和异常处理。与 Javascript15和 jScript55的实现一致 1.3客户端 Javascript 当把一个 JavaScript解释器嵌入Web浏览器时,就形成了客户端 Javascript.这是 迄今为止最普通的 JavaScript变体。当人们提到 JavaScript时、通常所指的是客户 端 Javascript.。本书介绍了客户端 javascript及 Javascript语言的核心,这两者是混 合在一起的 我们将在本章后面的小节中详细计论客户端的 vbscript以及它的功能简面言 客户端 JavaScript将 Javascript解释器的脚木化能力与Web浏览器定义的文档对 模型( Document Object Model,poM)结合在一起。因为这两种技术是以一种相 五作用的方式结合在一起的,所以产的结果大于两部分能力之和,即客户端 JavaScript使得可执行的内容散布在网络中的各个地方,它是新代动态 DHTML ( DHTML)文档的核心 与ECMA-262现范定义了 Javascript语言核心的标准版本-样,W3C也发布了个 DOM规范(戍建议},用来将浏览器必须在它的DOM中支持的特性进行标准化。我 们将在第十七、十八和十九章中了解到有关该标准的更多内容。尽管W3CDOM标 还没有得到应有的支持,但是对它的支持仍然足以使Web开发者开始编写基于它 的 JavaScript代码
JavaScript概述 l 長1-2展示了核心语的版本和 Netscape公司与 Microsoft公司提供的各种浏览器 版本所攴持的DOM功能。注意表中列出的 Internet Explorer版本引用的是哪种浏 览器的 Windows版木。IE的 Macintosh版本的功能通常与相同版本号的 windows 版本不同。另外要记住,允许 JScript解释器独立于浏览器升级,因此遇到所安装 的IE攴持的 JScript版木比下表列出的要高是完全可能的 表1-2:各种浏览器支持的客户端 Java Script特性 浏览器版本 语言版本 DoM功能 Netscape JavaScript 1.0 表单操作 Netscape 3 JavaScript 1.1 图像翻转 Netscape 4 JavaScript1.2具有层的 DHTML Nelscape 4.5 JavaScript 1.3 其有层的 DHTML Netscape 6/Mozilla JavaScript 1.5 对w3CDOM标准剖大量攴持,废止了对 层的攴持 IE 3 JScript I.0/20表单操作 IE 4 JScript 3.0 图像翻转.具有 document.a1性质的 DHTML IE JScript 5.0 共有 document,aL1|1性质的 DHTML IE5.5 JScript 5.5 部分攴持W3CDOM标准 JScript 5.5 部分支持W3CDOM标准,缺乏对W3C DOM标准的事件模型的攴持 Netscape公司和 Microsoft公司都提供了客户端 Javascript,这两种版本的不同之处 与不兼容性比两家公司相应的语言核心之间的差别要大得多。不过、这两种浏览器 都攴持的客户端 Java script的特性子集还是比较大的。由于没有较好的名字,所以 引用客户端 Javascript版本时使用的都是它们引以为基础的话言核心版本因此,在 许多坏境中,术语 JavaScript1.2指的就是 Netscape4和! nternet Explorer4支持的 客户端 Javascript。当使用核心语言的版木号来引用客户端的 Javascript版本时.指 的是 Netscape和 Internet Explorer都攴持的特性集合。当讨论·种浏览器特有的客 户端特性时,使用浏览器的名称和版本号来引用它