前端/移动开发面试题更新 2026-08-05

请描述 Node.js 中 Buffer 对象的定义及其主要用途。

前端/移动开发技术原理Node.js

考察说明

考查对 Node.js 中 Buffer 对象概念和基本用途的理解。

回答思路

  1. 【回答框架 1】Buffer 是 Node.js 用于处理二进制数据的全局对象,其设计目标是让 JavaScript 能够直接操作原始内存中的字节。它在流操作和文件读写等场景中作为数据容器,弥补了 JavaScript 原生字符串仅支持 Unicode 的不足。
  2. 【回答框架 2】Buffer 的创建方式包括 Buffer.alloc、Buffer.from 和 Buffer.concat 等,分别用于分配指定大小、从字符串或数组创建以及合并多个 Buffer。这些 API 支持不同的编码格式,如 utf8 和 base64,方便在文本与二进制数据之间转换。
  3. 【回答框架 3】在 I/O 场景中,Buffer 与 Stream 配合使用,例如读取文件或接收网络请求时,数据以 Buffer 形式在内存中暂存,从而支持高效的大文件处理和网络传输。理解 Buffer 的底层内存分配机制有助于避免不必要的拷贝和内存泄漏。
  4. 【回答框架 4】Buffer 的主要作用是提供对二进制数据的稳定、高效的处理方式,支持字节级操作,如读取整数、写入浮点数等。这在处理图像、音视频数据、加密哈希等非文本数据时极为关键,是 Node.js 后端开发的基础能力之一。
  5. 【关键点 1】Buffer 用于处理二进制数据,是 Node.js 的核心全局对象。
  6. 【关键点 2】主要用途包括文件 I/O、网络传输和流处理中的数据暂存。
  7. 【关键点 3】创建方法有 Buffer.alloc、Buffer.from 等,支持多种编码转换。
  8. 【关键点 4】Buffer 与 Stream 配合实现高效的数据管道处理。
  9. 【易错点 1】直接用 new Buffer(size) 已被废弃,应使用 Buffer.alloc 或 Buffer.from。
  10. 【易错点 2】Buffer 一旦创建大小固定,修改长度需重新分配或使用 Buffer.concat。
  11. 【易错点 3】不释放大型 Buffer 可能导致内存占用过高,需要合理管理生命周期。