由于 JavaScript 在网络和其他领域的流行,它已经变得不可避免。但这并不意味着它很受欢迎。通过这本书,我希望让你相信,虽然在使用 JavaScript 时你必须接受相当多的怪癖,但它是一门不错的语言,可以让你非常高效,而且编程也很有趣。
尽管我从 JavaScript 诞生之日起就一直在关注它的发展,但我花了很长时间才开始喜欢上它。然而,当我最终喜欢上它时,我发现我之前的经验已经为我做好了充分的准备,因为我曾经使用过 Scheme、Java(包括 GWT)、Python、Perl 和 Self(所有这些语言都对 JavaScript 产生过影响)。
2010 年,我了解到 Node.js,这让我看到了最终能够在服务器端和客户端都使用 JavaScript 的希望。因此,我转而将 JavaScript 作为我的主要编程语言。在学习它的过程中,我开始写一本书来记录我的发现。这就是你现在正在阅读的这本书。在我的博客上,我发表了本书的部分内容和其他关于 JavaScript 的资料。这在几个方面帮助了我:积极的反应鼓励我继续前进,并使写这本书不再那么孤独;对博客文章的评论为我提供了额外的信息和建议(本书中随处可见);它让人们了解了我的工作,最终促成了 O'Reilly 出版这本书。
因此,这本书的创作历时三年多。在这段漫长的酝酿期中,我不断完善其内容,这本书也从中受益匪浅。我很高兴这本书终于完成了,并希望人们会发现它对学习 JavaScript 有用。O'Reilly 已同意免费提供在线阅读,这将有助于让更广泛的读者能够阅读到它。
这本书适合你吗?以下几点可以帮助你做出判断
这本书是由程序员为程序员而写的。因此,为了理解它,你应该已经了解面向对象编程,例如,通过主流编程语言,如 Java、PHP、C++、Python、Ruby、Objective-C、C# 或 Perl。
因此,本书的目标读者是希望快速、正确地学习 JavaScript 的程序员,以及希望加深技能和/或查找特定主题的 JavaScript 程序员。
本书分为四个部分,但主要的两个部分是
这两部分完全独立!你可以把它们当作两本独立的书:前者更像是一本指南,而后者更像是一本参考书。本书的四个部分 将向你详细介绍本书的结构。
学习 JavaScript 最重要的技巧是不要被细节所困扰。是的,这门语言有很多细节,本书涵盖了其中的大部分。但我还会向你指出一个相对简单而优雅的“全局”。
本书分为四个部分
在阅读本书时,你可能需要准备好一个命令行。 这允许你以交互方式尝试代码。最流行的选择是:
node
来启动它。 本书通篇使用以下符号约定。
问号 (?) 用于标记可选参数。例如
parseInt
(
str
,
radix
?
)
法语引号(guillemets)表示元代码。你可以将此类元代码视为空白,由实际代码填充。例如
try
{
«
try_statements
»
}
“白色”方括号标记可选的语法元素。例如
break
⟦«
label
»⟧
在 JavaScript 注释中,我有时使用反引号来区分 JavaScript 和英语
foo
(
x
,
y
);
// calling function `foo` with parameters `x` and `y`
我通过完整路径引用内置方法
«
Constructor
»
.
prototype
.
«
methodName
»
()
例如,Array.prototype.join()
指的是数组方法 join()
;也就是说,JavaScript 将 Array
实例的方法存储在对象 Array.prototype
中。其原因将在第 3 层:构造函数——实例的工厂中解释。
每当我介绍一个新概念时,我通常会通过 JavaScript 命令行中的交互来说明它。这看起来像这样:
> 3 + 4 7
大于号后面的文本是输入,由人键入。其他所有内容都是由 JavaScript 引擎输出的。此外,我使用 console.log()
方法将数据打印到控制台,尤其是在(非命令行)源代码中
var
x
=
3
;
x
++
;
console
.
log
(
x
);
// 4
此元素表示提示或建议。
此元素表示一般注释。
此元素表示警告或注意。
虽然你显然可以将本书用作参考,但有时在线查找信息更快。我推荐的一个资源是Mozilla 开发者网络 (MDN)。你可以在网上搜索 MDN 上的文档。 例如,以下网络搜索可以找到数组的 push()
方法的文档:
mdn array push
Safari Books Online 是一个按需提供的数字图书馆,提供来自全球领先的技术和商业作家的专家内容,包括书籍和视频形式。
技术专业人士、软件开发人员、网页设计师以及商业和创意专业人士将 Safari Books Online 作为他们研究、解决问题、学习和认证培训的主要资源。
Safari Books Online 为企业、政府、教育和个人提供一系列计划和价格。
会员可以访问来自 O'Reilly Media、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones & Bartlett、Course Technology 以及更多出版商的数千本书籍、培训视频和出版前的手稿,这些内容都可以在一个完全可搜索的数据库中找到。有关 Safari Books Online 的更多信息,请访问我们的网站。
如有关于本书的意见和问题,请联系出版商
奥莱利媒体公司 |
格雷文斯坦公路北 1005 号 |
加利福尼亚州塞瓦斯托波尔 95472 |
800-998-9938(美国或加拿大境内) |
707-829-0515(国际或本地) |
707-829-0104(传真) |
我们为本书创建了一个网页,其中列出了勘误表、示例以及任何其他信息。你可以访问以下页面:http://oreil.ly/speaking-js。
要评论或提出有关本书的技术问题,请发送电子邮件至[email protected]。
有关我们书籍、课程、会议和新闻的更多信息,请访问我们的网站:http://www.oreilly.com。
在 Facebook 上找到我们:http://facebook.com/oreilly
在 Twitter 上关注我们:http://twitter.com/oreillymedia
在 YouTube 上观看我们:http://www.youtube.com/oreillymedia
我要感谢以下所有帮助我完成这本书的人。
以下人士为我对 JavaScript 的理解奠定了基础(按时间顺序排列)
更多来源在各章中都有说明。
我非常感谢以下审阅本书的人。他们提供了重要的反馈和更正。按字母顺序排列