Node.js 和浏览器的区别

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

从广泛使用 JavaScript 的前端开发人员的角度来看,Node.js 应用程序带来了一个巨大的优势:可以用单一语言编写所有内容——前端和后端——的舒适感。

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

变化的是生态系统。

在浏览器中,大多数时候你所做的是与 DOM 或其他 Web 平台 API(如 Cookies)交互。当然,这些在 Node.js 中不存在。你没有浏览器提供的 documentwindow 和所有其他对象。

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

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

这意味着你可以编写 Node.js 版本支持的所有现代 ES2015+ JavaScript。由于 JavaScript 发展迅速,但浏览器升级速度可能有点慢,因此有时在 Web 上你会陷入使用较旧的 JavaScript/ECMAScript 版本。你可以使用 Babel 将你的代码转换为与 ES5 兼容,然后再将其发布到浏览器,但在 Node.js 中,你不需要这样做。

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

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

阅读时间
2 分钟
作者
flaviocopesollelauribostromMyles BorinsfhembergerLaRuaNaahmadawaiskarlhorky
贡献
编辑此页面