零、简介

在过去的十年中,JavaScript 的受欢迎程度有了很大的提高。JavaScript 最初用于创建交互式网页和处理基本的表单验证,现在是许多复杂 web 应用的主干。因此,能够很好地使用 JavaScript 编程的人在各种项目中都有很高的需求。如果你想从事网络技术,你应该了解 JavaScript。

本书旨在为 JavaScript 提供完整的参考,并涵盖该语言的基础知识。我们的总体目标是涵盖在任何规模的项目中使用 JavaScript 所需的所有主题。

这本书是给谁的?

这本书面向两类读者:一类是已经了解 JavaScript 并需要可靠参考的人,另一类是刚刚开始学习该语言并希望快速上手的人。在这两种情况下,我们都假设你至少有一个基本的编程背景。特别是第 1 章,假设你是从更传统的语言,如 C++或 Java,学习 JavaScript。

我们还假设您对 HTML 有基本的了解,包括语义标记和各种文档类型声明——尽管整本书中使用 HTML 的示例都是用 HTML 5 编写的。我们还假设您对 CSS 以及如何使用它来管理网页外观有基本的了解。

最后,我们假设您对 web 及其底层协议有基本的了解。

如果你一生中从未写过一行代码,或者如果你是 web 技术的新手,这可能不是最适合你的书。但是只要你对编程和 web 技术有基本的了解,这本书就可以帮助你学习 JavaScript。

概观

这本书分为两部分。第一部分致力于讲授 JavaScript 及其相关技术的基础知识。第二部分是参考文献。

  • 第一章 针对的是从另一种语言来到 JavaScript 的程序员。JavaScript 是一种比大多数通用语言更加动态的语言,从这些语言迁移到 JavaScript 会带来特殊的挑战。首先,我们介绍 JavaScript 是什么以及它是如何产生的,然后我们深入探讨其他语言的程序员遇到的三个主要挑战:JavaScript 的对象继承和类的缺乏、它的作用域规则以及它的动态类型。所有这些特性在 JavaScript 中的工作方式与在其他语言中有很大不同,我们希望立即了解它们。我们通过提供一些使用我们所学的 JavaScript 中的常见模式来结束这一章。
  • 第二章 是对 JavaScript 语言的总体参考。我们从头开始,从 JavaScript 的词汇结构开始,然后快速进入它的操作符,它如何处理变量,JavaScript 对对象、数组和函数的处理。我们通过查看 JavaScript 的流控制语句来结束这一章。第 2 章更详细地讲述了第 1 章中提到的一些事情。它们共同构成了对这门语言的坚实介绍,从基础到中间概念,如闭包。
  • 第三章 涵盖了文档对象模型。虽然从技术上来说 DOM 不是 JavaScript 的一部分,但是我们在其中包含了一章,因为您将使用 JavaScript 完成的大量工作很可能会涉及到 DOM。这一章从 DOM 标准的简史和它是如何发展的开始。然后我们深入到细节:如何访问页面元素,如何操作它们(包括创建新元素和删除现有元素),以及 DOM 提供的事件模型(包括定制事件)。我们以跨浏览器策略的讨论来结束这一章,这些策略用于处理不同浏览器之间 DOM 实现的差异。
  • 第四章 把我们在第一章第二章第三章中学到的东西都拿来用。我们已经把这一章分成了几节,每一节都涵盖了不同的内容。第一部分,使用 JavaScript,涵盖了使用 JavaScript 需要的东西。我们涵盖了基本的工作流程以及工具和调试技术。第二部分通过仔细研究浏览器如何加载和解析脚本,以及如何利用这一点来提高 JavaScript 应用的效率。第三部分介绍使用 XMLHTTP 对象的异步通信——也称为 AJAX。第四部分介绍了浏览器强加的一个重要的安全限制——单源策略——以及使用该策略并完成工作的一些技巧。在第五节中,我们提供了一个数据缓存的实际例子。第六部分是关于选择 JavaScript 库,第七部分涵盖了最流行的 JavaScript 库 jQuery。最后,我们用一个实际的例子来结束这一章,这个例子使用我们在这一章中学到的所有东西来构建你自己的库。
  • 第 5 章 从本书的参考部分开始,涵盖了 JavaScript 的一部分对象。
  • 第六章 为 JavaScript 的控制语句提供了参考。
  • 第七章 讲的都是 JavaScript 操作符。
  • 第八章 是 DOM 引用。

尽管它们是参考章节,但我们始终试图提供有用的、重要的示例。

本书中使用的约定

在本书中,代码以fixed-width font的形式呈现。代码示例和语法定义与其他文本分开,并使用相同的字体。此外,代码元素(如对象、原始值等)的内联引用也以相同的字体显示。

代码下载

所有的代码片段和例子都可以从http://www.apress.com/9781430246299下载。该下载包括书中所有的示例代码,以及一些没有包含在书中的额外代码。我们鼓励您下载代码,并在阅读文本时使用它。