JavaScript是目前Web客户端开发的主要编程语言,也是Ajax的核心技术之一。本书从最早期Netscape浏览器中的JavaScript开始讲起,直到当前它对XML和Web服务的具体支持,内容主要涉及JavaScript的语言特点、JavaScript与浏览器的交互、更高级的JavaScript技巧,以及与在Web应用程序中部署JavaScript解决方案有关的问题,如错误处理、调试、安全性、优化/混淆化、XML和Web服务,最后介绍应用所有这些知识来创建动态用户界面。\r\n 本书适合有一定编程经验的开发人员阅读,也可作为高校相关专业课程的教材。
第1章 JavaScript是什么\r\n 1.1 历史简述\r\n 1.2 JavaScript实现\r\n 1.3 小结 \r\n第2章 ECMAScript基础。\r\n 2.1 语法\r\n 2.2 变量\r\n 2.3 关键字\r\n 2.4 保留字\r\n 2.5 原始值和引用值\r\n 2.6 原始类型\r\n 2.7 转换\r\n 2.8 引用类型\r\n 2.9 运算符\r\n 2.10 语句 \r\n 2.11 函数\r\n 2.12 小结 \r\n第3章 对象基础 \r\n 3.1 面向对象术语\r\n 3.2 对象应用\r\n 3.3 对象的类型:本地对象\r\n 3.4 作用域\r\n 3.5 定义类或对象\r\n 3.6 修改对象\r\n 3.7 小结 \r\n第4章 继承\r\n 4.1 继承机制实例\r\n 4.2 继承机制的实现\r\n 4.3 其他继承方式\r\n 4.4 小结 \r\n第5章 浏览器中的JavaScript\r\n第6章 DOM基础\r\n第7章 正则表达式\r\n第8章 检测浏览器和操作系统\r\n第9章 事件\r\n第10章 高级DOM技术\r\n第11章 表单和数据完整性\r\n第12章 表格排序\r\n第13章 拖放\r\n第14章 错误处理\r\n第15章 JavaScript中的XML \r\n第16章 客户端与服务器端的通信\r\n第17章 Web服务\r\n第18章 与插件进行交互\r\n第19章 部署问题\r\n第20章 JavaScript的未来\r\n索引
译者序
亲爱的读者:
当您从书架上拿出这本书的时候,我想您肯定对Ajax技术有着浓厚的兴趣,而本书也正是您的正确选择。本书的作者Nicholas C. Zakas用通俗易懂的语言,将JavaScript的诞生、现在的状况、未来的发展和与其紧密相关的各种技术一一详尽地叙述出来,刚学JavaScript的朋友,可以按部就班成为高手,而已经是高手的朋友,则可以将本书作为参考手册。
第1章讲述了JavaScript的起源,给大家一个关于JavaScript正确的认知。
第25章详细介绍了JavaScript语言本身,揭示了一些JavaScript不为认知的语言特点。
第69章介绍了JavaScript和浏览器进行交互的一些基础知识和一些进阶知识,如DOM的基础、正则表达式。
第1013章介绍了一些更加高级的JavaScript技巧,这些技巧可以构建良好的客户端逻辑,包括表格排序、拖动等。
第14章关于错误处理的内容,既有如何编程处理JavaScript错误,也包含了如何调试JavaScript的方法,而调试一直是JavaScript的弱项。
第16、17章讲述了利用JavaScript进行客户端到服务器的同学,不仅仅介绍了现在的Ajax技术的基础XML HTTP Request,还介绍了曾经出现过的一些方法。第17章更明确的介绍了如何调用Web服务。
第19章,介绍了如何考虑生产环境中JavaScript所需要注意的一些事情,如安全性、性能等。
第20章,展望了JavaScript未来的发展。
本书除了介绍了JavaScript的各个方面外,更难得的是,作者更涵盖了现今各个流行浏览器之间在这些方面的区别,并帮助读者,解决这些问题。
本书第15章由张欣翻译,第615章由曹力翻译,第1620章由王霄翻译,全书由张欣统稿、润色及审校。还要感谢全体工作人员的努力才将本书完成。
我们深深地感我们的家人和朋友。在翻译过程中,他们给予了我们莫大的关心、支持和帮助。
限于我们的水平,翻译过程中的疏漏和错误再作难免,请广大读者批评指正。
曹力
2006年于东南大学
Nicholas C.Zakas世界知名的JavaScript专家和Web开发人员。Nicholas拥有丰富的Web开发和界面设计经验,曾经参与许多世界大公司的Web解决方案开发,并与他人合作撰写了畅销书《Ajax高级程序设计》。
虽然服务器端 的Netscape Enterprise Server和Active Server Pages (ASP)都曾经支持过Javascript,但它主要还是Web浏览器使用的客户端脚本语言。目前它的重点是帮助开发者与Web页面和Web浏览器窗口本身进行交互。
Javascript是一种不严格基于Java的面向对象程序设计语言,以嵌入式Java小程序的形式在Web上广为使用。虽然Javascript的语法和程序设计方法都与Java相似,但它并非Java语言的简化版本。相反的,Javascript是一种独立的语言,在全世界的Web浏览器中都可以找到它,启用它可以增强用户与Web站点和Web应用程序之间的交互。
本书从最早期的Netscape浏览器中的Javascript开始讲起,直到当前它对XML和Web服务的具体支持。你将学到如何扩展这种语言,使它适应特殊的需求,还会学到如何在没有Java或隐藏框架这些媒介的情况下创建无缝的客户-服务器通信。简而言之,你将学到如何将Javascript解决方案应用到Web开发者面对的商业问题上。
本书涵盖的内容
本书提供的是开发者级别的Javascript介绍,包括很多高级的有用特性。
本书开头探讨了Javascript的起源以及迄今为止的发展。之后详细介绍了构成Javascript实现的各个组件,着重介绍了ECMAScript和文档对象模型DOM这样的标准。此外还讨论了不同Web浏览器中使用的Javascript实现的不同。
基于上述讨论,本书开始介绍Javascript的基本概念,包括面向对象的程序设计版本、继承性以及它在各种标记语言(如HTML)中的用法。在探讨了浏览器检测技术,介绍过在Javascript中使用正则表达式后,本书对事件和事件处理进行了深度考察。之后,它应用了所有这些知识,来创建动态用户界面。
本书最后一部分的重点是与在Web应用程序中部署Javascript解决方案有关的问题。这些主题包括错误处理、调试、安全性、优化/模糊化、XML和Web服务器。
本书的适用对象
本书针对的读者群有三类:
熟悉面向对象程序设计方法,由于Javascript与传统的OO语言(如Java和C++)相关所以想学习它的的有经验的开发者。
尝试提高Web站点和Web应用程序可用性的Web应用程序开发者。
目的在于更好理解Javascript语言的初学者。
此外,如果你熟悉下列相关技术,那么表明本书也适用于你:
XML
XSLT
Java
Web Services
HTML
CSS
本书针对的不是没有计算机科学的基础背景的初学者,也不是那些想在Web站点添加一些简单的用户交互特性的人。这些读者应该阅读Wrox编写的《Beginning Javascript》一书的第二版(Willey Publishing, Inc., ISBN 0-7645-5587-1)。
使用本书的前提需求
要运行本书中的示例,需要下列软件:
Windows 2000、Windows Server 2003、Windows XP或Mac OS X
Internet Explorer 5.5或更高版本(Windows)、Mozilla 1.0或更高版本(所有平台)、Opera 7.5或更高版本(所有平台)、Safari 1.2或更高版本(Mac OS X)
从本书的站点http://www.wrox.com可以下载书中示例的完整源代码。
本书的结构
1. Javascript是什么?
这一章解释了Javascript的起源,它是怎样长生的,如何发展,现状如何。引入的概念包括Javascript和ECMAScript、文档对象模型DOM以及浏览器对象模型BOM之间的关系。此外还有与欧洲计算机制造商协会ECMA和W3C有关的各项标准。
2. ECMAScript基础
这一章分析了Javascript基于的核心技术ECMAScript。从变量和函数的声明到使用和理解原始与引用值,它说明了编写Javascript代码必需的基础语法和概念。
3. 对象基础
这一章的重点是用Javascript进行面向对象的程序设计(OOP)的基础。涵盖的主题包括用各种方法定义定制的对象、创建对象实例以及了解Javascript和Java中的OOP的相同点和不同点。
4. 继承性
这一章继续解释Javascript中的OOP,说明了继承机制是如何作用的,其中讨论了各种实现继承性的方法,并且还比较了它们与Java中的继承性的异同。
5. 浏览器中的Javascript
这一章解释了如何把Javascript嵌入用各种语言(如HTML、SVG和XUL)编写的Web页。此外还介绍了浏览器对象模型BOM及它的各种对象和接口。
6. DOM基础
这一章介绍了Javascript中实现的DOM,包括专门适用于Web开发者的DOM概念。后面用HTML、SVG和XUL编写的示例中使用了这些概念。
7. 正则表达式
这一章的重点是Javascript实现的正则表达式,这是数据验证和字符串操作的强有力工具。本章探讨了正则表达式的起源、语法以及它在各种程序设计语言中用法。本章的结尾探讨了正则表达式在Javascript实现中的异同。
8. 探测浏览器和操作系统
这一章解释了编写能在各种Web浏览器上运行的Javascript脚本的重要性。它讨论了两种探测浏览器的方法,即对象/特性探测法和用户-代理字符串探测法,每种方法的优点和缺点都被列了出来。
9. 事件
本章讨论了Javascript中最重要的概念之一——事件。事件是把Javascript和任何标记语言编写的Web-用户界面连接在一起的主要方法。这一章介绍了事件处理的各种方法和事件流的概念(包括冒泡和捕捉)。
10. 高级DOM技术
这一章介绍了一些更高级的DOM特性,包括范围和样式表操作。我举了一个例子,说明如何使用这些技术,此外还讨论了如何实在跨浏览器的支持。
11. 表单和数据完整性
这一章讨论了使用表单时数据验证的重要性。在介绍处理验证的方法时,还应用了前面介绍过的概念,如正则表达式、事件和DOM操作。
12. 表排序
这一章应用了前面介绍过的多种特性,来实现客户端的动态表排序。其中包括用Javascript进行排序的深度讨论,以及如何用事件、DOM操作和比较运算符开发各种Web浏览器都能使用的通用表排序协议。
13. 拖放
这一章解释了拖放的概念以及它们在Javascript和Web浏览器中的应用。其中讨论了系统拖放的概念和模拟拖放的概念,结尾创建了一个能跨浏览器使用的标准拖放界面。
14. 错误处理
这一章通过讨论try…catch语句和onerror事件处理程序的用法介绍了Javascript中的事件处理概念。另一个主题是用throw语句创建定制的错误消息以及Javascript调试器的用法。
15. Javascript中的XML
这一章介绍了Javascript用于读取和操作可扩展标记语言(XML)数据的特性。我解释了各种Web浏览器的支持和对象的不同,还为跨浏览器编码提供了建议。此外,本章还介绍了如何用XSLT语言转换客户端的XML数据。
16. 客户-服务器通信
这一章探讨了Javascript与服务器通信的各种方法。这些方法包括使用cookie和基于Javascript的HTTP请求。此外,这一章还解释了如何在不使用隐藏框架的情况下实现GET和POST HTTP请求。
17. Web服务
这一章介绍了如何用Javascript提供Web服务,其中讨论了Internet Explorer和Mozilla中使用的不同方法,还为原本没有Web服务支持的浏览器提供了一种基本的Web服务解决方案。
18. 用插件进行交互
这一章解释了Javascript和各种浏览器插件(如Java小程序、SVG文档和ActiveX控件)之间的通信方法。其他主题包括如何编写能与Javascript一起使用的插件。
19. 部署问题
这一章的重点是完成Javascript编码后的操作。它说明了在把Javascript解决方案部署到Web站点或Web应用程序之前要做哪些操作。其中的主题包括安全问题、国际化问题、优化、知识产权保护和Section 508 Compliance。
20. Javascript的发展
这一章探察了Javascript的未来,介绍了这种语言的发展方向。其中讨论了ECMAScript的ECMAScript 4和XML。
规约
为了帮助你最大限度的利用本书,我在全书中使用了大量规约。
这样的矩形框中放置的是重要的、不容忘记的信息,它与周围的内容直接相关。
提示、暗示、小窍门和离题话都像这样用斜体显示,前面有缩进。
至于文本中的样式:
在介绍重要的单词时,高亮显示它们
用Ctrl+A这样的形式说明键盘按键
正文中的文件名、URL和代码用persistence.properties这样的形式显示
代码有两种形式:
PXXV 代码
源代码
在练习本书中的示例时,可以选择手动输入代码,也可以使用本书附带的源代码文件。在http://www.wrox.com处可以下载到本书中使用的所有源代码。进入该站点后
无封面