零、前言

精通 JavaScript 高性能 在这本书中,我们以一种帮助 JavaScript 开发人员的方式介绍了 JavaScript 性能,无论他们是新手还是经验丰富的老手。 这本书涵盖了常见的性能瓶颈,如何查找代码中的性能问题,以及如何轻松地纠正它们。

我们还回顾了优化 JavaScript 代码的现代方法,不仅依靠 JavaScript 知识,还使用工具帮助我们优化代码。 这些工具包括 Gulp 和 Node.js,它们可以帮助创建高性能的构建,以及 Jasmine,一个 JavaScript 单元测试框架,可以帮助发现 JavaScript 中的应用流问题。 我们还使用苹果 Xcode 的 HTML 和 JavaScript 调试工具调试一个混合应用。

这本书的内容

第一章,速度的必要性,说明了需要更快的 JavaScript,讨论为什么 JavaScript 代码通常是缓慢的,并显示类型的代码编辑器,它可以帮助我们更快的 JavaScript,写没有改变我们的编码风格。

第二章使用 JSLint 增加代码性能*,探索 JavaScript 的性能修复,并涵盖 JSLint,一个非常好的 JavaScript 验证和优化工具。

第 3 章理解 JavaScript Build Systems,教你 JavaScript Build Systems 及其在 JavaScript 性能测试和部署方面的优势。

第 4 章检测性能,涵盖了谷歌的开发工具选项,并包含了如何使用 Web Inspector 来提高我们的 JavaScript 代码性能的回顾。

第 5 章运算符、循环和计时器解释了 JavaScript 语言中的运算符、循环和计时器,并展示了它们对性能的影响。

第 6 章构造器、原型和数组,介绍了 JavaScript 语言中的构造器、原型和数组,并展示了它们对性能的影响。

第 7 章不使用 DOM,包含了 DOM 与编写高性能 JavaScript 的关系的回顾,并展示了如何优化我们的 JavaScript 来渲染我们的 web 应用明显更快。 我们还会查看 JavaScript 动画,并测试现代 CSS3 动画的性能。

第 8 章Web Workers and Promises展示了 Web Workers 和 promise。 本章还向您展示了如何使用它们,包括它们的局限性。

第 9 章优化 JavaScript for iOS Hybrid Apps介绍了针对移动 iOS 网页应用(也称为混合应用)的 JavaScript 优化。 此外,我们还将了解 Apple Web Inspector,并了解如何将其用于 iOS 开发。

第 10 章应用性能测试,介绍了 Jasmine,一个 JavaScript 测试框架,允许我们对 JavaScript 代码进行单元测试。

你写这本书需要什么

对于这本书,您将需要一个基本的了解 JavaScript,如何编写 JavaScript 函数和变量,如何使用基本的 web 技术,例如 HTML 和 CSS,以及一些基本的调试技能使用 web Inspector 如 Chrome 开发工具或 Firebug,等等。

你将需要一个文本编辑器,最好是用于 HTML 和 JavaScript 编码; 第一章the Need for Speed。 选择编辑器和您所使用的系统的管理员权限由您自己决定,这也取决于您的预算。 此外,第 9 章优化 JavaScript for iOS Hybrid Apps,严格涵盖了 iOS 开发中的 JavaScript; 为此,你需要一份 Xcode 和一个基于英特尔的 Mac。如果你没有这些,你仍然可以阅读,但理想情况下,大部分工作是在 Mac 上完成的。

这本书是给谁的

本书是为中级 JavaScript 开发人员编写的。 如果您对 JavaScript 单元测试和编写自己的框架有经验,并且能够理解 JavaScript 中基于实例和基于静态的区别,那么这本书可能不适合您。 此外,如果您是 javascript 新手,比如“我如何使用函数?” -我建议你也找一本初学者的 JavaScript 书。

然而,如果你已经成 JavaScript,但新节点样式的性能测试、繁重或吞咽项目部署,在 JavaScript 单元测试,或者如果你想知道更多关于如何编写 JavaScript 更快,或者如果你只是想阻止代码库落后没有重写你的编码风格, 你读对了书。

会议

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

文本代码、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 url、用户输入和 Twitter 句柄如下所示:“为了解决这个问题,现代浏览器已经实现了新的控制台功能,称为console.timeconsole.timeEnd。”

代码块的设置如下:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Jasmine Spec Runner v2.1.3</title>

新词语重要词语以粗体显示。 你在屏幕上看到的文字,例如在菜单或对话框中,会出现这样的文本:“点击Next按钮将你移动到下一个屏幕。”

注释

警告或重要注释出现在这样的框中。

提示

提示和技巧是这样的。

读者反馈

我们欢迎读者的反馈。 让我们知道你对这本书的看法——你喜欢或不喜欢的东西。 读者反馈对于我们开发游戏非常重要。

要向我们发送一般的反馈,只需发送电子邮件到<[feedback@packtpub.com](mailto:feedback@packtpub.com)>,并通过你的信息的主题提到书的标题。

如果你对某一主题有专长,并且你对写书或投稿感兴趣,请参阅我们的作者指南www.packtpub.com/authors

客户支持

现在,您是包书的骄傲所有者,我们有一些东西来帮助您从您的购买中获得最多。

下载示例代码

您可以从您的账户http://www.packtpub.com下载您购买的所有 pack 书籍的示例代码文件。 如果您在其他地方购买了这本书,您可以访问http://www.packtpub.com/support并注册,直接将文件通过电子邮件发送给您。

下载本书彩色图片

我们还提供了一个 PDF 文件,里面有本书中使用的屏幕截图/图表的彩色图像。 彩色图像将帮助您更好地理解输出中的变化。 您可以从:https://www.packtpub.com/sites/default/files/downloads/7296OS_ColorImages.pdf下载该文件。

勘误表

尽管我们已经尽一切努力确保内容的准确性,但错误还是会发生。 如果您在我们的任何一本书中发现了错误——也许是文本或代码中的错误——我们将非常感谢您向我们报告。 通过这样做,您可以避免其他读者感到沮丧,并帮助我们改进本书的后续版本。 如果你发现任何错误,请报告通过访问 http://www.packtpub.com/submit-errata,选择你的书,点击勘误表提交链接,并输入你的勘误表的细节。 一旦您的勘误表得到验证,您的提交将被接受,勘误表将被上传到我们的网站,或添加到任何现有勘误表的列表中,在该标题的勘误表部分。 任何现有的勘误表都可以在http://www.packtpub.com/support中选择您的标题查看。

**## 盗版

互联网上的版权材料盗版是所有媒体都存在的问题。 在 Packt,我们非常重视版权和许可的保护。 如果您在互联网上发现任何形式的我们作品的非法拷贝,请立即提供我们的位置地址或网站名称,以便我们采取补救措施。

请在<[copyright@packtpub.com](mailto:copyright@packtpub.com)>联系我们,并提供疑似盗版资料的链接。

我们感谢您在保护我们的作者方面的帮助,以及我们为您带来有价值的内容的能力。

问题

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