零、前言

关于

本节简要介绍作者、本书的内容、入门所需的技术技能,以及完成所有包含的活动和练习所需的硬件和软件需求。

关于书

深入了解 JavaScript 会让你更容易学习其他各种框架,包括 React、Angular 以及相关的工具和库。 本书旨在帮助您了解构建现代应用所需的核心 JavaScript 概念。

首先学习如何在文档对象模型(DOM)中表示 HTML 文档。 然后,您将结合 DOM 和 Node.js 的知识来创建一个适用于实际情况的 web scraper。 在阅读后续章节时,您将使用 Node.js 的 Express 库创建一个基于 Node.js 的 RESTful API。 您还将了解如何使用模块化设计来提高可重用性,以及如何在单个项目上与多个开发人员进行协作。 后面的章节将指导您构建单元测试,以确保程序的核心功能不会随着时间的推移而受到影响。 本书还将演示构造函数、异步/等待和事件如何快速有效地加载应用。 最后,您将了解函数式编程概念,如不变性、纯函数和高阶函数。

在本书结束时,您将掌握使用现代 JavaScript 方法处理任何现实世界的 JavaScript 开发问题所需的技能,包括客户端和服务器端。

作者简介

Hugo Di Francesco是一个广泛使用 JavaScript 的软件工程师。 他拥有伦敦大学学院(UCL)的孟数学计算学位。 他曾在佳能(Canon)和爱思唯尔(Elsevier)等公司使用 JavaScript 创建可伸缩和高性能的平台。 他目前正在使用 Node.js、React 和 Kubernetes 解决零售运营领域的问题,同时使用 Hugo 网站运行同名代码。 在工作之余,他是一名国际击剑运动员,为了追求这一目标,他在全球各地训练和比赛。

高思远是艺电的软件工程师。 他拥有普渡大学计算机科学学士学位。 他在 JavaScript 和 Node.js 方面工作了 4 年多,主要是为高可用性系统构建高效的后端解决方案。 他也是 Node.js Core 项目的贡献者,已经发布了许多 npm 模块。 在业余时间,他喜欢学习电子游戏设计和机器学习。

Vinicius Isola1999 年开始使用 Macromedia Flash 和 ActionScript 编程。 2005 年,他通过了 Java 认证,专攻 web 和企业应用的构建。 一直致力于堆栈的所有部分,JavaScript 和网络技术一直存在于他的许多工作岗位和他工作过的公司。 在空闲时间,他喜欢从事开源项目,并指导新的开发人员。

Philip Kirkbride有超过 5 年的 JavaScript 经验,总部位于蒙特利尔。 他于 2011 年毕业于一所技术学院,从那时起,他一直在不同的职位上从事网络技术工作。 他与物联网公司 2Klic 合作,该公司与大型电暖器公司 Convectair 签约,开发由 Z-Wave 技术驱动的智能加热器。 他的角色包括用 Node.js 和 Bash 编写微服务。 他也有机会为开源项目 SteemIt(一个基于区块链的博客平台)和 DuckDuckGo(一个基于隐私的搜索引擎)做出一些贡献。

学习目标

读完这本书,你将能够:

  • 应用函数式编程的核心概念
  • 构建一个 Node.js 项目,使用 Express.js 库来托管一个 API
  • 为 Node.js 项目创建单元测试以验证它
  • 使用 Cheerio 库和 Node.js 创建一个基本的 web scraper
  • 开发 React 接口来构建处理流
  • 使用回调作为恢复控制的基本方法

观众

如果你想从一个前端开发人员晋升为一个全栈开发人员,并了解如何使用 Node.js 来托管全栈应用,这是一本理想的书。 阅读本书后,您将能够编写更好的 JavaScript 代码,并了解该语言的最新趋势。 为了容易地掌握这里解释的概念,您应该了解 JavaScript 的基本语法,并且应该使用过流行的前端库,如 jQuery。 你也应该在 HTML 和 CSS 中使用 JavaScript,但不一定是 Node.js。

进场

这本书的每一部分都被明确地设计来吸引和激励你,这样你就可以保留和应用你所学到的东西,在一个实际的环境中产生最大的影响。 您将学习如何通过函数式编程和测试驱动的开发实践来解决激发智力的编程挑战,这些挑战将使您为现实世界的主题做好准备。 每一章都被明确地设计成以 JavaScript 为核心语言。

硬件要求

为了获得最佳体验,我们推荐以下硬件配置:

  • 处理器:英特尔酷睿 i5 或同等型号
  • 内存:4gb RAM
  • 存储:5gb 可用空间

软件需求

建议您提前安装以下软件:

会议

文本中的代码、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 url、用户输入和 Twitter 句柄如下所示:

ES6import功能还允许你导入模块的一部分,而不是整个模块。 这是 ES6 的import优于 Node.jsrequire函数的一个功能。 SUSE”

代码块的设置如下:

let myString = "hello";
console.log(myString.toUpperCase()); // returns HELLO
console.log(myString.length); // returns 5

安装和安装

在我们能用数据做了不起的事情之前,我们需要准备好最高效的环境。 在这个简短的部分中,我们将看到如何做到这一点。

安装 Node.js 和 npm

Node.js 的安装附带了 npm (Node.js 的默认包管理器)。

在 Windows 上安装 Node.js

  1. 在官方安装页面https://nodejs.org/en/download/current/找到你想要的 Node.js 版本。
  2. 确保选择 Node.js 12(当前版本)。
  3. 确保你为电脑系统安装正确的架构; 即 32 位或 64 位。 您可以在操作系统的系统属性窗口中找到这些信息。
  4. 下载安装程序后,只需双击文件并按照屏幕上用户友好的提示操作。

在 Linux 下安装 Node.js 和 npm

要在 Linux 上安装 Node.js,你有几个不错的选择:

在 macOS 上安装 Node.js 和 npm

类似于 Linux,你有一些方法在 Mac 上安装 Node.js 和 npm。要在 macOS X 上安装 Node.js 和 npm,执行以下步骤:

  1. 打开 Mac 终端,按cmd +空格,在打开的搜索框中输入terminal,按输入
  2. 通过命令行运行xcode-select --install安装 Xcode。
  3. 安装 Node.js 和 npm 最简单的方法是使用 Homebrew,它是通过命令行运行ruby -e "$(curl -fsSL(https://raw.githubusercontent.com/Homebrew/install/master/install)安装的。
  4. 最后一步是安装 Node.js 和 npm。 在命令行中运行brew install node
  5. 同样,你也可以通过https://nodejs.org/en/download/current/上的安装程序安装 Node.js 和 npm。

安装 Git

要安装 git,请访问https://git-scm.com/downloads,并按照您平台的具体说明操作。

附加资源

本书的代码包也托管在 GitHub 上的https://github.com/TrainingByPackt/Professional-JavaScript。 我们也有来自丰富的图书和视频目录的其他代码包,可以在https://github.com/PacktPublishing/上找到。 检查出来!