《JavaScript权威指南》全面介绍了JavaScript语言的核心,以及Web浏览器中实现的遗留和标准的DOM。它运用了一些复杂的例子,说明如何处理验证表单数据、使用cookie、创建可移植的DHTML动画等常见任务。本书还包括详细的参考手册,涵盖了JavaScript的核心API、遗留的客户端API和W3C标准DOM API,记述了这些API中的每一个JavaScript对象、方法、性质、构造函数、常量和事件处理程序。
前言
第一章 JavaScript概述
第一部分 JavaScript的核心
第二章 词法结构
第三章 数据类型和值
第四章 变量
第五章 表达式和运算符
第六章 语句
第七章 函数
第八章 对象
第九章 数组
第十章 使用正则表达式的模式匹配
第十一章 JavaScript的更多主题
第二部分 客户JavaScript
第十二章 Web浏览器中的JavaScript
第十三章 窗口和框架
第十四章 Document对象
第十五章 表单和表单元素
第十六章 脚本化cookie
第十七章 文档对象模型
第十八章 级联样式表和动态HTML
第十九章 事件和事件处理
第二十章 兼容性
第二十一章 JavaScript的安全性
第二十二章 JavaScript中使用Java
第三部分JavaScript核心参考手册
第四部分 客户端JavaScript参考手册
第五部分 W3C DOM参考手册
第六部分 类、属性、方法和事件处理程序索引
词汇表
David Flanagan是一位计算机程序设计人员,他将大部分时间用于编写JavaScript程序和Java程序。他在O Reilly公司出版的书还包括《JavaScript Pocket Refrence》、《Java in a Nutshell》、《Java Foundation Classes in a Nutshell》和《Java Examples in a Nutshell》。David拥有麻省理工学院的计算机科学和工程学位。他和妻子、儿子住在美国太平西北部的Seatle、Washington、Vancouver、British Columbia这些城市中。
自从本书的第三版出版以来,用JavaScript进行Web程序设计的世界已经发生了巨大的改变,其中包括:
·ECMA—262标准的第二版和第三版已经发布,其中更新了JavaScriPt语言的核心。使Netscape公司的JavaScript解释器和Microsoft公司的JScript解释器相一致的版本也发布了。
·Netscape公司的JavaScript解释器(一个版本是用C语言编写的,另一个版本是用Java语言编写的)的源代码作为开放资源发布了,任何想把脚本语言嵌入自己应用程序的人都可以使用它。
·万维网联盟(W3C)发布了文档对象模型(DOM)标准的两个版本(或两级)。最近的浏览器都支持这一标准(支持的程度不同),而且允许客户端的JavaScript脚本与文档内容进行交互,从而生成复杂的动态HTML(DHTML)效果。对其他W3C标准(如HTML 4、CSSl和CSS2)的支持也已经相当普遍。
·Mozilla组织利用Netscape公司提供的源代码制作了良好的第五代浏览器。在编写本书期间,Mozilla浏览器还不过处于1.0版本的水平,但是该浏览器已经足够成熟,因此Netscape公司采用Mozilla代码作为它的6.0和6.1版本的浏览器的基础。
·Microsoft公司的Internet Explorer在桌面系统上已经成为占统治地位的浏览器。但是Netscape/Mozilla的浏览器仍然与Web开发者保持着密切的关系,这主要是由于它对Web标准提供了较高支持。除此之外,少数浏览器,如Opera(Attp://www.opera.com)和Konquerer(Attp://www.konqueror.org),也和Web开发者有密切的关系。
·Web浏览器(和JavaScript解释器)不再局限于桌面电脑,它已经被移植到PDA,甚至移动电话上了。
总之,JavaScript语言的核心已经发展成熟。它已经被标准化了,而且使用范围也比以往广泛得多。Netscape公司市场份额的暴跌促进了桌面型电脑上的Web浏览器的发展,而且启用JavaScript的Web浏览器在非桌面型电脑的平台上也可以使用了。虽然web标准化还没有完成,但在这方面有了明显的进展。近来,浏览器中DoM标准的实现(部分的)给予了Web开发者长期期待的独立于开发商的API,他们可以用这些API进行编码。
第四版中增加的新内容
《JavaScript权威指南》第四版基于上述介绍的变化对内容进行了全面的更新。主要的新特性包括JavaScript1.5和它基于的ECMA—262标准的第三版的完整介绍,以及2级DOM标准的完整说明。
本书的重点已经从介绍特定的JavaScript语言和浏览器的实现(JavaScript1.2、Netscape4、Internet Explorer5,等等)转移到记述这些实现基于的(或应该基于的)标准。由于实现的激增,任何一本书想要记述每个实现版本的特性、使用范围、缺陷和错误都是不实际的。重点介绍规范而不是实现会使本书更容易使用,如果你采用同样的方法,它还可以使你的JavaScript代码更具可移植性且更容易维护。你还应特别注意对有关JavaScript语言核心和DOM的新材料中对标准的强调。
这一版本中另一个重要的改变是参考手册部分被明显地分成了三个部分。第一,有关JavaScript语言核心的材料从客户端JavaScript的材料(第四部分)中分离了出来,自己单独组成一部分(第三部分)。这种分离是为了方便那些在Web浏览器之外的环境中使用JavaScript语言的程序设计者和对客户端JavaScript不感兴趣的人。第二,记述W3C的DOM标准的材料从已有的客户端JavaScript材料中分离了出来,组成第五部分。DOM标准定义的API和传统的客户端JavaScript遗留下来的API有很大不同。开发者通常会根据他们作为目标的浏览器平台选择一种API,而且一般不会在两种API之间来回切换。保持这两种API相互独立还保留了现有客户端参考手册的架构,这大大方便了读过本书第三版、现在升级到第四版的读者。
为了容纳所有新素材,而又不使本书变得非常厚,书中删除了对象的一些琐碎属性的参考页。这些属性在对象的参考页中已经说明过了,再用它自己的参考页进行额外的说明既显得十分多余。不过需要大量说明的属性以及所有方法仍然具有它们自己的参考页。另外,OReilly公司的设计奇才为本书创建了一种新的结构,不仅使它仍然保持容易阅读,而且占用的版面更少了。
排版约定
本书使用下列排版约定:
粗体(Bold)
用来引用计算机键盘上的特殊键或引用用户界面上的某个部分,如按钮Back和菜单Options。
斜体(ltalic)
用于强调重点,或者表示术语的第一次使用。此外,它还用于电子邮件地址、网址、FTP地址、文件名、目录名和新闻组等。而且,本书还将斜体字用于Java类的名字,以与JavaScript类的名字区分开来。
等宽字体(Constant width)
用于所有的JavaScript代码、HTML文本列表以及在程序设计时要输入的内容。
等宽斜体(Constant width italic)
用于函数的参数名以及程序中的占位符(说明应该用一个实际的值替换这个项目)。
勘误表
请把你在本书中发现的错误、不准确处、缺陷、易误解的或混乱的语句和旧版式报告给O'Reilly&Associates公司,以帮助我们改进本书以后的版本。O'Reilly公司为本书建立了一个网站,它包括一个所有已知的错误的列表。从本书的目录页可以链接到这个勘误表:
Attp://www.oreilly.com/catalog/jscript4/
这个勘误表页含有一个表单的链接,你可以通过该表单汇报找到的错误。你也可以通过电子邮件报告错误或询问有关本书的问题:
bookquestions@oreilly.com
info@mail.com.cn
如何找到在线的例子
本书中列出的例子都可以从本书的站点下载。从本书的目录页能够链接到示例:
http://www.oreilly.com/catalog/jscript4/
建议与评论
本书的内容都经过测试,尽管我们做了最大的努力,但错误和疏忽仍然是在所难免的。如果你发现有什么错误,或者是对将来的版本有什么建议,请通过下面的地址告诉我们:
美国:
O'Reilly&Associates,Inc.
10l Morris Street
Sebastopol,CA 95472
中国:
100080北京市海淀区知春路49号希格玛公寓B座809室
奥莱理软件(北京)有限公司
询问技术问题或对本书的评论,请发电子邮件到:
info@mail.oreilly.com.cn
最后,您可以在WWW上找到我们:
http://www/.oreilly.com
http://www.oreilly.com.cn
致谢
Mozilla公司的Brendan Eich是JavaScript的创作者和主要革新者。感谢Brendan开发了JavaScript,他在百忙中花大量时间回答我们的问题甚至不断催促我们写作,对此我和许多JavaScript开发者感激不已。除了耐心地回答我们提出的大量问题之外,Brendan还通读了本书的第一版和第三版,并且提出了很多有用的建议。
除了Brendan之外,还有其他几位顶尖的技术评论者阅读了这本书,他们的建议使本书内容更加完善、更加准确。Netscape公司的Waldemar Horwat审阅了第四版中有关JavaScript1.5的新资料,W3C的Philippe Le Hegaret、荷兰Internet顾问和创建公司Netlinq Framfab(http://www.netlinqframfab.nl)的客户端程序设计部的主管Peter—Paul Koch、SitePen公司(http://www.sitepen.com)的Dylan Schiemann和独立Web开发者Jeff Yates审阅了有关W3C DOM的新资料。这些审阅者中有两位维护了有关用DOM进行Web设计的站点。Peter-Paul的站点是http://www.xs4all.nl/-ppk/js/。Jeff的站点是http://www.pbwizard.com。尽管IBM Research的Joseph Kesselman没有审阅过本书,但是他回答了我们提出的有关W3C DOM的问题,给予了大量的帮助。
本书的第三版是由Netscape公司的Brendan Eich、Waldemar Horwat和Vidur Apparao,Microsoft公司的Herman Venter以及两位独立的JavaScript开发者Jay Hodges和Angelo Sirigos审阅的。CNET's Builder.COM公司的Dan Shafer为本书的第三版本作了一些准备工作。虽然这一版中并没有使用他提供的资料,但是他的想法和整体大纲却给了我们极大的帮助。Netscape公司的Norris Boyd和Scott Furman也为这一版本提供了有用的信息,还有Netscape公司的Vidur Apparao和Microsoft公司的scott lssacs,他们花费了大量的时间与我讨论即将出台的DOM标准。最后,Tankred Hirschmann博土提供了有关JavaScript1.2的复杂性的过人见解。
本书的第二版大大受益于Netscape公司的Nick Thompson和Richard Yaker与Microsoft公司的Shon Katzenberger博士、Larry Sullivan和Dave C.Mitchell以及R&B Communication公司的Lynn Rollin的帮助与建议。第一版则由Bay Networks公司的NeilBerkman与O'Reilly&Associates公司的Andrew Schulman和TerryAllen审阅。
本书各个版本的编辑为提高本书品质做了大量工作。Paula Ferguson是第四版和第三版的编辑,她对本书进行了全面且必要的润色,使得它更易读易懂。第二版是由Frank Willison编辑的,Andrew Schulman编辑了第一版。
最后,出于多种原因,要向Christie致谢。
David Flanagan
2001年9月