跳到正文
前端知识库
后端与网络

Node.js 高频追问 Q&A

A: 单线程事件循环 + 非阻塞 I/O,能高效处理大量并发请求。(深入阅读:Node.js 的非阻塞 I/O 与适用场景)

2 分钟

Node.js 高频追问 Q&A

1. Q: Node.js 为什么适合 I/O 密集?

A: 单线程事件循环 + 非阻塞 I/O,能高效处理大量并发请求。(深入阅读:Node.js 的非阻塞 I/O 与适用场景

2. Q: Node.js 是单线程吗?

A: JS 主线程单线程,但底层线程池会处理部分异步任务。(深入阅读:JavaScript 主线程、libuv 与线程池

3. Q: process.nextTicksetImmediate 区别?

A: nextTick 优先级更高,会在当前阶段结束后先执行。(深入阅读:process.nextTicksetImmediate 与事件循环

4. Q: Stream 的价值是什么?

A: 边读边处理,降低内存峰值。(深入阅读:Stream、管道与背压

5. Q: 常见性能优化点?

A: 连接复用、缓存、减少同步阻塞、合理使用 cluster/pm2。(深入阅读:Node.js 性能分析与优化

6. Q: 大文件为什么优先使用 Stream?

A: 流可以边读边处理并形成背压,避免 readFile 一次性把完整文件放进内存。更多边界见 Node.js 面试真题补充。(深入阅读:大文件处理与 Stream

7. Q: Buffer.from('10')Buffer.from([10]) 一样吗?

A: 不一样,前者编码两个字符,后者创建一个值为 10 的字节;Buffer 长度按字节而不是字符计数。(深入阅读:Buffer、字节与字符编码

8. Q: EventEmitter 的监听器为什么要保存函数引用?

A: off/removeListener 需要同一个函数对象,重新创建“长得一样”的函数不能解除原监听。(深入阅读:EventEmitter 的监听与移除语义

9. Q: JWT 的 payload 能直接当作机密数据吗?

A: 不能。payload 只是 Base64URL 编码,服务端仍需验证签名、过期时间和权限;敏感内容不要直接放入其中。(深入阅读:JWT 结构、验证与安全边界