Node.js和浏览器之间的差异

浏览器和 Node.js都使用 JavaScript 作为其编程语言。

构建在浏览器中运行的应用程序与构建 Node.js应用程序完全不同。

尽管它始终是JavaScript,但有一些关键的差异使体验完全不同。

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

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

改变的是生态系统。

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

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

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

这意味着您可以编写 Node.js 版本支持的所有现代 ES6-7-8-9 JavaScript。

由于JavaScript移动得如此之快,但浏览器的升级速度可能有点慢,有时在网络上,您只能使用较旧的JavaScript / ECMAScript版本。

在将代码发布到浏览器之前,您可以使用 Babel 将代码转换为与 ES5 兼容,但在 Node.js 中,您不需要它。

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

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