Node.js 和浏览器之间的区别

在 Node.js 中编写 JavaScript 应用与在浏览器中进行 Web 编程有何不同。

浏览器和 Node.js 都使用 JavaScript 作为它们的编程语言。 构建在浏览器中运行的应用与构建 Node.js 应用完全不同。 尽管它始终是 JavaScript,但存在一些使体验截然不同的关键差异。

从广泛使用 JavaScript 的前端开发者的角度来看,Node.js 应用带来了巨大的优势: 用一种语言对一切(前端和后端)进行编程的舒适度。

你有一个巨大的机会,因为我们知道完全、深入地学习一种编程语言是多么困难,并且通过使用相同的语言在网络上执行你的所有工作 - 无论是在客户端还是在服务器上,你都处于独特的优势地位。

变化的是生态系统。

在浏览器中,大部分时间你所做的是与 DOM 或其他 Web 平台 API(如 Cookie)进行交互。 当然,那些在 Node.js 中不存在。 你没有浏览器提供的 documentwindow 和所有其他对象。

在浏览器中,我们没有 Node.js 通过其模块提供的所有优秀 API,例如文件系统访问功能。

另一个很大的区别是在 Node.js 中你可以控制环境。 除非你正在构建一个任何人都可以在任何地方部署的开源应用,否则你知道你将在哪个版本的 Node.js 上运行该应用。 与浏览器环境相比,你无法自由选择访问者使用的浏览器,这非常方便。

这意味着你可以编写你的 Node.js 版本支持的所有现代 ES2015+ JavaScript。 由于 JavaScript 发展如此之快,但浏览器的升级速度可能会有点慢,有时在网络上你只能使用较旧的 JavaScript / ECMAScript 版本。 在将代码交付到浏览器之前,你可以使用 Babel 将代码转换为 ES5 兼容,但在 Node.js 中,你不需要这样做。

另一个区别是 Node.js 同时支持 CommonJS 和 ES 模块系统(自 Node.js v12 起),而在浏览器中我们开始看到正在实现的 ES 模块标准。

实际上,这意味着你可以在 Node.js 中同时使用 require()import,而在浏览器中只能使用 import

Node.js 中文网 - 粤ICP备13048890号