基础篇
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
避免
- eslint检测代码中全局未引用的变量
进阶篇
饿了么团队NodeJS面试