零、前言

这本书探究了 JavaScript 的本质:一种高度表达性和灵活性的基于原型的面向对象编程语言。曾经被认为是设计师用来制作翻车按钮等东西的玩具,今天这种有趣而独特的语言又回来了,比以往任何时候都更强大。当今的网络 2.0 世界中,AJAX、胖客户端编程、类似桌面的丰富互联网应用、拖放地图和网络邮件客户端都严重依赖于 JavaScript 来提供高度交互的用户体验。如果我们以前从未有机会正确探索 JavaScript,现在是时候坐下来(重新)学习它了。

这本书没有假设任何 JavaScript 的先验知识,从头开始,让你彻底了解这种语言。

这本书涵盖了什么

第 1 章简单介绍了 JavaScript 的历史、现状和未来,然后继续探讨面向对象编程(OOP)的基础知识。然后,您将学习如何设置您的培训环境(Firebug),以便以书籍示例为基础,自己钻研这门语言。

第二章讨论语言基础:变量、数据类型、数组、循环和条件句。

第三章涵盖功能。JavaScript 对函数有许多用途,在这里你可以学习掌握它们。您还将了解变量的范围和 JavaScript 的内置函数。这种语言的一个有趣但经常被误解的特性——闭包——在这一章的结尾被揭开了神秘的面纱。

第 4 章介绍对象:如何使用属性和方法,以及创建对象的各种方法。还有 JavaScript 内置对象的概述,比如数学和日期(只是概述,附录 C 有所有细节)。

第 5 章专门讲述了 JavaScript 中原型这一至关重要的概念。

第六章拓展了你的“用 JavaScript 思考”视野,讨论了十几种用 JavaScript 实现继承的方法。

第七章是浏览器章节。在本章中,您将了解 BOM(浏览器对象模型)、DOM (W3C 的文档对象模型)、浏览器事件和 AJAX。

第八章深入探讨了各种独特的 JavaScript 编码模式,以及几种独立于语言的设计模式,从软件设计模式中最有影响力的著作《四书》翻译成了 JavaScript。

附录 A 列出了 JavaScript 中的保留词。

附录 B 是对内置 JavaScript 函数的引用,以及示例使用。

附录 C 是一个参考文献,提供了 JavaScript 中每个内置对象的每个方法和属性的使用细节和示例。

附录 D 是正则表达式模式参考。

惯例

在这本书里,你会发现许多区分不同种类信息的文本风格。以下是这些风格的一些例子,以及对它们的含义的解释。

文本中的码字如下所示:“键/值对用冒号分隔,格式为 key: value。”

一组代码将设置如下:

var book = {
name: 'Catch-22',
published: 1961,
author: {
firstname: 'Joseph',
lastname: 'Heller'
}
};

当我们希望将您的注意力吸引到代码块的特定部分时,相关的行或项目将以粗体显示:

function TwoDShape(){}
// take care of inheritance
TwoDShape.prototype = Shape.prototype; 
TwoDShape.prototype.constructor = TwoDShape;

新术语重要词汇以粗体字体介绍。你在屏幕上看到的单词,例如在菜单或对话框中,出现在我们的文本中,就像这样:“点击下一步按钮,进入下一个屏幕”。

警告或重要提示会出现在这样的框中。

注意

提示和技巧是这样出现的。

读者反馈

我们随时欢迎读者的反馈。让我们知道你对这本书的看法——你喜欢或可能不喜欢什么。读者反馈对我们开发您真正能从中获得最大收益的标题非常重要。

要给我们发送一般反馈,只需向<[feedback@packtpub.com](mailto:feedback@packtpub.com)>发送电子邮件,并在您的邮件主题中提及书名。

如果您需要一本书并希望看到我们出版,请在www.packtpub.com或电子邮件<[suggest@packtpub.com](mailto:suggest@packtpub.com)>上的建议标题表格中给我们发送注释。

如果你对某个主题有专业知识,并且对写作或投稿感兴趣,请参阅我们在www.packtpub.com/authors上的作者指南。

客户支持

现在,您已经自豪地拥有了一本书,我们有许多东西可以帮助您从购买中获得最大收益。

勘误表

尽管我们尽了最大努力来确保内容的准确性,但错误还是会发生。如果你在我们的某本书里发现了错误——可能是文本或代码上的错误——如果你能向我们报告,我们将不胜感激。通过这样做,你可以使其他读者免于沮丧,并有助于改进这本书的后续版本。如果您发现任何错误,请访问http://www.packtpub.com/support,选择您的书籍,点击让我们知道链接,并输入错误的详细信息。一旦你的意见被核实,你的提交将被接受,并添加到现有的勘误表的书。任何现存的勘误表都可以通过从http://www.packtpub.com/support中选择你的书来查看。

问题

**如果您对本书的某些方面有问题,您可以在<[questions@packtpub.com](mailto:questions@packtpub.com)>联系我们,我们将尽力解决。

我想把这本书献给我的妻子伊娃和我的女儿兹拉提娜和娜塔莉。感谢您的耐心、支持和鼓励。

感谢我的审稿人,他们自愿花时间审阅这本书的草稿,我非常尊敬和尊敬他们:非常感谢你们的宝贵意见。**