【悄咪咪学Node.js】1. Node.js 是什么、为什么要学习

100 阅读4分钟

Node.js 是什么、为什么要学习

1. 前言

本节课将会引导大家学习了解:

  • 什么是 Node.js
  • Node.js 怎么工作
  • 为什么要学习 Node.js
  • Node.js 与其他后端语言的对比

2. Node.js 是什么

2.1 Node.js 不是一种语言

首先我们要确立一个观点,Node.js 不是一种语言,用于编写Node.js程序的语言是 JavaScript

我们先来看看 Node.js 上的 Hello World 长什么样:

console.log('Hello World!');

结果:

Hello World!

Tips: 这里的编码方式和前端所使用 JavaScript 时完全没有区别。

2.2 Node.js 官方解释

Node.js® 是基于 Chrome 的 V8 JavaScript 引擎构建的 JavaScript 运行时。

2.3 笔者解释

Node.js 是一个让 JavaScript 运行在服务端的开发平台,他可以使前端开发人员在经过少量学习之后,实现服务器程序编写能力的服务器端 JavaScript 解释器

2.4 V8 是什么,和 Node.js 的关系是什么

V8 是一个用 C++ 实现的 JavaScript 解释器,其运行效率十分迅速。

V8 最常见的日常应用场景是 Google 的 Chrome 浏览器,它的底层 JavaScript 解释器就是 V8。

Node.js 实际上底层使用的解释器就是用 V8 修改至适合服务器上使用的版本。

3. Node.js 怎么工作

Node.js 用的是事件驱动编程模型。 JavaScript 是一种特别适合事件驱动编程模型的语言,它的出现就很好地解决了用户在页面点击、拖动时所触发相对应函数的问题。

与面向对象编程相对应,事件驱动编程模型更加简单,也便于新手理解。

4. 为什么要学习 Node.js

需要明白自己为什么要学习 Node.js,就要先捋清自己的成长路线。

阅读本文的读者,应该都是有前端基础的人。这里介绍一下学习 Node.js 对前端工程师的好处。

  • 对前端开发本身而言,通过学习 Node.js,可以清楚前后端交互的方式,知道前端、后端各自的优势,就能更清楚什么东西放在前端处理更好,什么东西应该放在后端处理。
  • 对于想转后端开发的读者而言,可以利用自身 JavaScript 相对熟悉的优势,利用 Node.js 作为桥梁,学习后端技术。等 Node.js 学习完成后,再学习另外任何一种后端语言,都是极其方便的。
  • 对于个人发展而言,掌握 Node.js 是前端工程师通往全栈开发工程师的捷径,学习 Node.js 没有太大的语言障碍,以至于学习曲线对任何一个掌握前端开发能力的读者而言,都是最平缓的。

Tips: Node.js 的确是 JSer 们扩展知识边界很好的一个起点,也是新手想迅速掌握完整项目开发流程的切入点。

5. 知识对比

5.1 Node.js 和常见的后端语言的区别

在上文提到 Node.js 不是一门语言,它更像是 JavaScript 作后端使用时的解释器,该与之相比的应该是 Java 的 JVM。

和其他后端语言不同的是,Node.js 与浏览器一样使用 JavaScript 语言,业务逻辑能轻易在前端、Node.js 间轻松迁移。

在一些比较新的数据库中(如 MongoDB ),其查询是 JavaScript 编写的,如果使用 Node.js 来写后端,编写的代码结构会相对统一,不像其他语言在使用如 Mysql 时,需要在代码中插入一段 sql 语法,来完成数据库操作。

Node.js的生态是最活跃的,我们在 npm官网 上能看到各种各样的库,下面列举一些后文会讲到的常用库:

这一部分会在 MongoDB 章节中详细说明

Node.js 有十分优秀的异步处理能力,所以在网络 I/O 方面有特别优异的表现。

6. 小结

本节课程重点如下:

  1. 重点1

    Node.js 不是一种语言,是 JavaScript 作后端使用时的解释器,其基本语法和前端所使用的 JavaScript 基本一致。

  2. 重点2

    学习 Node.js 是前端开发者扩展知识边界学习曲线最平缓的路径之一。

  3. 重点3

    Node.js 的生态是目前最活跃的生态之一,有很多常用方法都被封装成库,新手初期可以利用生态上的库,来避免一些复杂逻辑的编写。