Node.js 与浏览器中的区别
浏览器和 Node.js 都使用 JavaScript 作为开发语言. 但是在浏览器中, 以及在 Node.js 中运行是完全不一样的. 尽管都是 JavaScript, 但是依旧有一些关键的地方是完全不一样的.
从前端开发的角度来说, Node.js 带来一个优势, 就是使用同一个语言开发前后应用.
这就存在一个很大的优势, 因为学一门语言还说有一定困难的.
生态的变化
在浏览器中, 大多数情况是在操作 DOM, 或其他 Web API, 例如 Cookie 等. 这些操作, Node.js 中是不存在的. 无法使用 document
, window
等由浏览器所提供的对象.
并且在浏览器中, 也没有 Node.js 模块提供的一些 API, 例如文件系统的功能等.
另一个更大的区别是, Node.js 可以操作环境. 简单说 API 是不完全兼容的.
在 Node.js 中可以使用现在 ES 的 API, 而浏览器中可以使用 babel 来进行兼容处理.
其他的不同是, Node.js 同时支持 CommonJS 和 ES 模块系统 (从 Node.js v12 开始). 但是在浏览器中, 还不支持 ES 模块.
实践中, 在 Node.js 支持 import
和 require()
来导入模块, 而浏览器中仅支持 import
.