Node.js 和浏览器之间的区别
在 Node.js 中编写 JavaScript 应用程序与在浏览器中进行 Web 编程有何不同
浏览器和 Node.js 都使用 JavaScript 作为它们的编程语言。 构建在浏览器中运行的应用程序与构建 Node.js 应用程序完全不同。 尽管它始终是 JavaScript,但存在一些使体验截然不同的关键差异。
从广泛使用 JavaScript 的前端开发人员的角度来看,Node.js 应用程序带来了巨大的优势: 用一种语言对一切——前端和后端——进行编程的舒适度。
你有一个巨大的机会,因为我们知道完全、深入地学习一种编程语言是多么困难,并且通过使用相同的语言在网络上执行你的所有工作——无论是在客户端还是在服务器上,你都处于 独特的优势地位。
改变的是生态系统。
在浏览器中,大部分时间您所做的是与 DOM 或其他 Web 平台 API(如 Cookie)进行交互。 当然,那些在 Node.js 中不存在。 您没有浏览器提供的 document
、window
和所有其他对象。
在浏览器中,我们没有 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
。