|
|
|
|
移动端

前言

《JavaScript忍者秘籍(第2版)》本书从JavaScript语言及最重要的特性谈起,由浅入深地探讨了函数、作用域、闭包、生成器函数、对象、数组、模块化、JavaScript与Web页面的交互以及事件等主题,引导读者更加深入地了解JavaScript的方方面面,充分展示了JavaScript语言的各种特性。本节为前言。

作者:一心一译前端小组 译来源:人民邮电出版社|2018-03-06 14:17

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享

前言

JavaScript非常重要。过去并非如此,但现在的确如此。如今JavaScript已经成为最重要的、使用最广泛的编程语言。

Web应用程序为用户带来了丰富的用户界面体验,如果没有JavaScript,可能只能显示小照片。Web开发人员比以往任何时候都更需要熟练掌握JavaScript语言,JavaScript 为 Web 应用程序注入了生命。

JavaScript不再只应用于浏览器了。JavaScript打破了浏览器的界限,可应用于服务端的Node.js,可应用于桌面设备和移动设备如Apache Cordova,甚至可内置在设备中如 Espruino和Tessel。虽然本书主要集中介绍在浏览器端执行JavaScript,但本书介绍的JavaScript基础适用范围非常广泛。深刻理解概念、了解多种技巧有助于你成为全栈JavaScript工程师。

随着使用JavaScript的开发人员逐渐增多,熟练掌握JavaScript基础比以往任何时候都更加重要,这样才能成为真正的JavaScript“忍者”。

目标读者

如果你不熟悉JavaScript,那么这本书并不适合作为你的第一本JavaScript图书。但也别太担心,我们试图介绍基本的JavaScript概念,对于初学者也相对容易理解。但是,本书更适合于至少掌握JavaScript基础、了解JavaScript代码执行的浏览器环境,并且希望深入理解JavaScript语言的Web开发人员。

路线图

本书通过4个部分,让你从“学徒”晋升为“忍者”。

第1部分介绍我们后续学习的主题和所需要的工具。

第1章介绍JavaScript语言及最重要的特性,推荐目前我们开发应用时需要遵循的最佳实践,包括测试和性能分析。

因为我们对JavaScript的研究是基于浏览器上下文,因此在第2章中,我们介绍客户端Web应用的生命周期,这有助于我们理解在开发Web应用程序时JavaScript所扮演的角色。

第2部分重点关注JavaScript的核心支柱之一——函数。我们将研究为什么函数如此重要,函数之间的区别,以及定义和调用函数的细节内容。我们还将特别关注一个新的函数类型——生成器函数,它在处理异步代码时尤为有效。

第3章从彻底检查JavaScript函数的定义开始涉足基础语言,也许你会感到吃惊。预期中可能是把对象作为重点,但是,让我们充分理解函数、JavaScript函数式语言,从普通的JavaScript程序员升级为JavaScript“忍者”!

在第4章中,我们继续研究函数,深入研究函数调用的机制,以及隐式函数参数的来龙去脉。

关于函数的内容还没有结束,在第5章我们把讨论推向更高的一个层级,研究两个密切相关的概念——作用域和闭包。闭包是函数式编程中的关键概念,闭包允许更细粒度地控制程序中声明和创建的对象作用域范围。控制对象的作用域范围是“忍者”编写代码的关键因素。即使不阅读后续的章节(但我们希望大家不要停下来),编程水平也会比刚开始学习时提高很多。

在第6章中,我们通过一种全新的函数类型(生成器函数)和一个新的对象类型(promise)帮助我们处理异步代码,最后结束对函数的研究。我们还展示了如何结合generator与promise,优雅地处理异步代码。

第3部分研究JavaScript的第二支柱——对象。我们将彻底地探索JavaScript中的面向对象,研究如何保护对对象的访问,如何处理集合和正则表达式。

第7章阐述对象,彻底了解JavaScript中面向对象是如何工作的。此外,我们还将引入一个新的JavaScript关键字:class。其背后概念可能与你所期望的有所不同。

第8章继续探索对象,我们将学习使用多种不同的技术保护对对象的访问。

在第9章中,我们将特别关注JavaScript中几种不同类型的集合。数组,从JavaScript诞生起就是JavaScript的一部分,map和set是最近新加入JavaScript的集合类型。

第10章着重介绍正则表达式,正则表达式是经常被忽略的一项语言特性,但正确使用正则表达式,可以减少很多代码量。我们将学习如何构建和使用正则表达式,以及如何使用正则表达式及其相关方法,优雅地解决一些重复出现的问题。

在第11章中,我们将学习使用不同技术实现代码模块化:更小、相对松耦合的代码片段,以及改善代码的机构和组织方式。

最后,第4部分研究JavaScript与Web页面的交互以及浏览器如何处理事件,最后结束本书。在结束之前的最后一个重要话题是跨浏览器开发。

第12章研究如何通过DOM API 动态修改页面,如何处理元素属性、样式,以及一些重要的性能注意事项。

第13章讨论JavaScript的单线程执行模型的重要性,以及单线程执行模型对事件循环的影响。我们还将学习间隔定时器的工作原理,以及如何使用它们提高Web应用程序的性能。

第14章检查开发时主要关心的5项跨浏览器问题:浏览器缺陷、缺陷修复、外部代码、功能缺失和回归。讨论诸如特性模拟和对象检测等方法,有助于跨浏览器开发的挑战。

代码规范

代码清单或文本中的所有源代码都采用等宽字体,与普通文本进行区分。

在某些情况下,为了适应页面,会对源代码进行格式化。一般来说,编写源代码时需要考虑页面宽度限制,但有时你会发现本书中的代码和下载的代码之间的格式有所不同。在极少数情况下,为了不改变代码的含义,代码过长无法被格式化,本书的代码清单中使用行连续符号进行标记。代码注释和许多列表用于突出重要概念。

源代码下载

本书中示例的源码清单(以及一些未在文本出现的其他代码)可以在本书的网页 https://manning.com/books/secrets-of-the-javascript-ninja-second-edition或异步社区(www. epubit.com.cn)下载。

本书的示例代码按章节分类,每一章为一个文件夹。文件夹排列顺序由本地Web服务器完成,如Apache HTTP 服务器。将下载的代码解压缩到所选择的文件夹,并将该文件夹设置为应用程序的根目录。

除了少数示例外,大多数示例都不需要Web服务器,如果需要,可以直接加载到浏览器中执行。

在线交流

本书作者和 Manning 出版社邀请读者访问本书的论坛,该论坛由 Manning 出版社直接运营,在论坛上你可以评论本书、询问技术问题,并获得作者和其他读者的帮助。在浏览器上登录 https://manning.com/books/secrets-of-the-javascript-ninja-second-edition,访问并订阅论坛,然后单击作者在线链接。作者在线页面提供关于如何注册并登录论坛,可以获得哪些帮助,以及论坛行为规则等相关信息。

Manning 承诺为读者提供一个读者与作者能够进行有意义交流的场所。Manning 不强制要求作者的参与次数,对本书论坛的贡献仍然是自愿的(无报酬)。我们建议读者尝试询问一些有挑战性的问题,以免作者丧失兴趣!

本书在售期间,在线交流论坛和先前发布的讨论帖都可以在出版商的网站上访问。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目      下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Cisco CCNA 640-802题库

Cisco 640-802 Cisco Certified Network Associate (CCNA) Testinside CCNA 640-802 V14 最新题库与Testinside CCNA 640-802 Q&A 192 ...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊