是什么?
- 基于 Chrome V8 引擎的 Javascript 运行环境
- 开源的,跨平台的 Javascript 运行环境
- 服务器端的、非阻塞式I/O的、事件驱动的 JavaScript 运行环境
- 通俗来讲就是一款可以运行Javascript代码的应用程序
非阻塞异步I/O
事件驱动
优缺点
-
优点:
- 处理高并发场景性能更佳
- 适合I/O密集型应用,指的是应用在运行极限时,CPU占用率仍然比较低,大部分时间是在做 I/O硬盘内存读写操作
-
缺点:由于是单线程
- 不适合CPU密集型操作
- 只支持单核CPU,不能充分利用CPU
- 可靠性低,代码当中某个环节发生问题,整个系统会崩溃
应用场景
- 开发服务器应用
- 服务器上可以保存编写好的网页,用户通过url访问
- 开发工具类应用
- Webpack
- Vite
- Babel
- 开发桌面端应用
- eletron
- VSCode(基于eletron开发出来的)
- Figma(基于eletron开发出来的)
- Postman(基于eletron开发出来的)
- eletron
与浏览器的差异
-
二者各自包含的全局变量不同。
- document 对象:是用来操作页面的,所以只有浏览器环境下才可以直接使用。如果想在Node.js中使用,需要额外安装jsdom之类的三方库并引入
- http 对象:Node.js 中可以直接拿来使用的 http 对象,在浏览器环境下就没有。
-
Node.js 和浏览器对 ES6 新特性的支持程度也是不同的。