基础篇

1.什么是Nodejs?

Nodejs 是一个异步的事件驱动的JavaScript运行时
Nodejs 组成: libuv jsCore V8
强项:

  • 高并发。I/O密集型处理
  • 异步

异步阻塞概念(烧水壶

2.事件循环

先同步,同步执行完后执行异步方法
语雀内容

3.微任务和宏任务

  • 宿主环境提供宏任务
  • 语言标准提供微任务

先执行微任务 再执行宏任务

4.什么是libuv

跨平台I/O抽象库,基于事件循环的异步I/O

5.如何开启多进程?

  • cluster 模块
  • pm2进程管理工具
  • Dokcer+k8s集群

6.如何避免回调地域

  • Promise
  • function* generate
  • co
  • async/await
  • eventEimitter(eventLoop)

7.如何实现sleep

8.洋葱圈模型属于哪种设计模式

9.异常错误处理有哪些?

  • callback
  • throw/try/catch
  • eventEmitter的error事件

10.有哪些错误

  • 系统错误
  • 断言错误
  • I/O错误

11.错误栈

12.位字节编码

13.steam和pipe

14.TCP/UDP区别

15.RESTful

16.GET和POST区别

17.POST和PUT区别

18.如何创建一个子进程,cluser和fork

19. 常用utils函数

20.如何防范内存泄漏

内存泄漏的情况

  • 全局变量
  • 闭包未释放
  • 事件监听

调试
打印内存快找heapdump
避免