初识 NodeJS(基于 Chrome V8 引擎的 JavaScript 运行时环境)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

初识 NodeJS基于 Chrome V8 引擎的 JavaScript 运行时环境

参考

项目描述
NodeJS 中文文档http://dev.nodejs.cn/learn
Node.js 权威指南陆凌牛
哔哩哔哩黑马程序员Node.js全套入门教程

描述

项目描述
操作系统Windows 10 专业版

NodeJS

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境它是跨平台和开源的。从广泛使用 JavaScript 的前端开发人员的角度来看Node.js 应用程序带来了巨大的优势即使用一种语言编写所有前端和后端项目的舒适性。

NodeJS 可以做什么

Node.js 作为一个 JavaScript 的运行环境仅仅提供了基础的 JavaScript 解析执行功能和一些内置 APIApplication Process Interface应用程序接口。然而有许多开发者凭借其精湛的技艺基于 Node.js 提供的这些基础功能开发了许多强大的工具和框架。所以学会了 Node.js 可以让前端程序员胜任更多的工作和岗位

基于 Express 框架快速构建 Web 应用
基于 Electron 框架构建跨平台的桌面应用
基于 restify 框架快速构建 API 接口项目。

像这样功能强大的工具还有很多探索它们的过程将充满惊喜。

特点

  1. V8 引擎
    Google Chrome 的 V8 引擎是目前性能最为强劲的 JavaScript 引擎而 NodeJS 是基于 V8 引擎开发的这使得 NodeJS 的性能不会太差。另外在 V8 引擎内部使用了一种全新的编译技术这意味着在针对同一开发任务时开发者编写的的 JavaScript 脚本代码与其编写的 C 语言代码具有非常相近的执行效率。

  2. 事件
    在一个 WEB 应用程序中产生的主要瓶颈是服务器所支持的最大同时连接用户量。
    NodeJS 修改了客户端到服务器端的连接方式大大提高了最大同时连接的用户量。NodeJS 并不为每一个客户端创建一个新的线程而是为每个客户端连接触发一个在 NodeJS 内部进行处理的事件。使用事件而不是线程大大减少了单个客户使用的服务器资源因此可以同时连接更多的用户。

  3. 非阻塞 I/OInput / Output
    JavaScript 的一个特征是它只支持单线程即使 NodeJS 中运行的 JavaScript 也是如此。但与客户端脚本语言不同的是NodeJS 为 JavaScript 提供了非阻塞 I/O 机制。
    I/O 阻塞会导致在进行 I/O 操作时CPU 无法得到充分的利用I/O 操作从存储介质中获取或存放数据此过程中的大部分时间 CPU 都处于空闲状态极大的降低了程序的执行效率。
    NodeJS 的非阻塞机制允许 JavaScript 在进行 I/O 操作时执行后续的代码在 I/O 操作结束时将触发事件NodeJS 将捕获该事件并执行该事件对应的事件处理函数。在非阻塞 I/O 中CPU 时刻处于忙碌状态提升了程序的执行效率。

  4. 事件环机制
    NodeJS 中在一个时刻仅能支持一个事件回调函数但是在执行一个事件回调函数的中途可以转而去处理其他事件然后返回继续执行原事件的回调函数这种处理机制称为事件环机制。

  5. 死锁
    由于 NodeJS 仅能使用单线程所以不用担心由多线程引发的死锁问题。

  6. 兼容性
    在 Node.js 中可以毫无问题地使用新的 ECMAScript 标准因为你不必等待所有用户更新他们的浏览器你负责通过更改 Node.js 版本来决定使用哪个 ECMAScript 版本你还可以通过运行带有标志的 Node.js 来启用特定的实验性功能。

  7. 生态
    npm 以其简单的结构帮助 Node.js 生态系统蓬勃发展现在 npm 仓库托管了超过 1,000,000 个开源包你可以自由使用。

用武之地

NodeJS 适合用于构建 I/O 密集型 的 WEB 应用程序不适用于 计算密集型任务。NodeJS 的非阻塞机制使其即使仅能使用单个线程但仍能应对高并发量的场景但也正是因为其仅能使用单个线程无法充分利用多核 CPU 的带来的性能优势所以其不适用于 计算密集型 的 WEB 应用程序。

获取

你将前往 NodeJS 官网 来获取 NodeJS 的安装包程序。

如果你将使用 NodeJS 开发企业级应用推荐使用 LTSLong Time Support长期支持版该版本的安全性、稳定性等特性相比最新版一般更具有优势。
如果你期望体验到 NodeJS 的最新特效那么推荐你使用最新版本。

安装页面

检测

在 NodeJS 安装完成后你可以在终端中输入如下命令来判断 NodeJS 是否安装成功并查看安装的 NodeJS 的版本号。

node -v

node --version

运行

如果你需要运行你实现的 NodeJS 代码你需要切换到 NodeJS 代码所在的工作目录下你也可以通过使用 JavaScript 文件所在的绝对路径来避免这一操作并执行如下命令以运行 NodeJS 代码

node <含有 NodeJS 代码的 JavaScript 文件> 

JavaScript 运行时环境

运行时环境是指代码正常运行所需的必要环境。

JavsScript 引擎

JavaScript 解析引擎简写为 JavaScript 引擎JavaScript 引擎用于对 JavaScript 的解析与执行。
V8 引擎是由 Google 公司使用 C++ 开发的一种高性能的 JavaScript 引擎而 NodeJS 的运行环境是基于 Chrome 开发的。

浏览器中的 JavaScript 运行时环境

浏览器中的 JavaScript 运行时环境由浏览器提供的内置 APIWEB API及 JavaScript 解析引擎组成。

Chrome 浏览器运行时环境

Chrome 中的 JavaScript 运行时环境由由其提供的内置 APIWEB API及 JavaScript 解析引擎 V8 组成。
Chrome 浏览器的运行时环境

其中

  1. Chorme 提供的 JavaScript 解析引擎 V8 负责解析和执行 JavaScript 代码。
  2. 内置 API 是由运行环境Chrome 浏览器提供的编程接口。
NodeJS 中的 JavaScript 运行时环境

NodeJS 运行时环境

NodeJS 与 浏览器的区别

浏览器是 JavaScript 的前端运行环境而 NodeJS 则是 JavaScript 的后端运行环境。因此JavaScript 在 NodeJS 运行环境中无法调用 DOM 和 BOM 等浏览器内置 API同样的JavaScript 在浏览器提供的 JavaScript 运行环境中也无法使用 NodeJS 提供的内置 API。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6