Buffer

25 阅读1分钟

一、理论

Buffer 让 JavaScript 可以操作二进制

Buffer 是什么?在哪?做什么?

JavaScript 语言起初服务于浏览器平台

Nodejs 平台下 JavaScript 可实现IO

IO行为操作的就是二进制数据

Stream 流操作并非 Nodejs 独创

流操作配合管道实现数据分段传输

数据的端到端传输会有生产者和消费者

生产和消费的过程往往存在等待

产生等待时数据存放在哪?

Nodejs 中Buffer 是一片内存空间

总结

  • 无须rquire 的一个全局变量

  • 实现 Nodejs 平台下的二进制数据操作

  • 不占据V8 堆内存大小的内存空间

  • 内存的使用由 Node来控制,由V8的GC 回收

  • 一般配合 Stream 流使用,充当数据缓冲区

image.png

创建Buffer

Buffer是 Nodejs 的内置类

image.png


const b1 = Buffer.alloc(10);

const b2 = Buffer.allocUnsafe(10);

console.log('b1', b1)

console.log('b2', b2)

const b3 = Buffer.from('hello');

const b4 = Buffer.from([1, 2, 3]);

const b5 = Buffer.from('hello', 'ascii');

const b6 = Buffer.from(b2, );

Buffer 实例方法

image.png

Buffer 静态方法

image.png