图书前言

  你是否尝试过学习非母语的读、说和写?如果你像我一样,刚开始尝试时可能会像下面这样。

  除非你是杰森·伯恩(或罗杰·费德勒),否则能把自己的母语学好就已经很不错了。这是正常的,因为学习语言本来就很难。不管是学习自己的母语还是学习第二门、第三门外语,要想精通一门语言并在正式场合派上用场,需要付出大量的时间和精力。我们需要从基础开始,需要大量的实践和耐心。在这方面,真的没有什么捷径可以让你弯道超车,让你迅速变得熟练起来。

  你会JavaScript语言吗?

  成功学习一门编程语言与学习现实世界的语言在方法上非常相似。都是从基础开始。一旦掌握了基础知识,就可以转向更高级的内容。整个学习过程就是如此迭代进行,而且实际上并没有终点。我们中没有人会真正停止学习,只是需要找到从合适的地方开始罢了。

  本书的目的正是帮助你解决“从哪个地方开始”的问题。本书从头到尾都是各种有用(我希望还有趣)的内容,帮助你学习JavaScript。

  不过,虽然我一般不太愿意说某一门编程语言的坏话,但如下图所示,JavaScript本身就相当沉闷和无聊。

  瞧瞧!这确实没有什么好辩解的。不过,虽然JavaScript本身可能非常无聊,但并不意味着我们学习它的过程肯定也会无聊。在本书中,你会发现一些玩笑和插图兼具知识性和娱乐性,难不成这就是人们所说的“寓教于乐”(infotaining)?!

  另一方面,由于在此过程中全面涵盖了关于JavaScript的所有有趣而实用的知识,所以我精心设计的这些玩笑和乐子最终都是有意义的。我的目的是让你熟悉JavaScript,以至于最终凭借本能就知道何时该用什么技术。到最后一章时,你将信心满满地准备迎接来自JavaScript的几乎所有相关挑战,超轻松!

好了,言归正传,暂时不开玩笑了,我写这本书的主要目标是帮助你学习JavaScript。你在阅读过程中,自然会遇到卡壳的时候或者不理解一些东西为什么会这样工作……或者不这样工作。这是学习过程的一部分。遇到难题时,请不要犹豫,立即联系我。最简单的方式是在 https://forum.kirupa.com论坛上发表你的问题。

  如下图所示,你不仅能联系到我,而且这个庞大的社区还有20多万名会员会看到你提出的问题,很多开发人员都聪明友善,乐于助人。

  最后,我想说的是,完成这样一本书并让它出现在各位读者面前,绝非易事。这需要幕前幕后一大群人不知疲倦地努力工作,他们将我的大白话变成了大家眼前所见的这些赏心悦目的页面。感谢培生的所有人使这一切成真!

  此时此刻,我还想向一些人致以特别的感谢。首先,我要感谢马克·泰博尔多年前给了我这个机会,金·斯宾西利在第2版和第3版中继续推动马克的工作,克里斯·扎哈思细致入微地确保文稿的可读性,Bart Reed出色的编辑工作,曼蒂·弗兰克保持项目始终走在正轨上,以及洛丽塔·叶芝跑上跑下地进行沟通联络。本书的技术内容经过我的老铁和在线合作者凯乐·莫瑞(第1版)、特雷弗·麦克考利(第1版、第2版和第3版)、史蒂夫·米尔斯(第3版)和狄伦·麦吉达(第3版)的详尽审查。我对他们全面的(而且经常是幽默的!)反馈表示由衷感谢。还要特别感谢汤米·翁,他花时间自愿提供反馈意见,使得这本书增色不少。

  同时我还要感谢我的父母,他们一直鼓励我追求创造性的爱好,比如绘画、写作、玩视频游戏和编写代码。我今天之所以能“宅而不废”,他们至少有一半的功劳。