聊聊 Node.js 中的 Buffer
2021-01-06 本文已影响0人
F_wind
《深入浅出 Node.js》阅读随笔
- 应用场景
在浏览器端,使用字符串来处理数据,通常就可以满足日常要求了。但是将 Javascript 作为服务器端语言时,还需要满足对二进制字节的处理,此时 Buffer 应用而生。 - 结构
新建一个 Buffer 对象,里面放置的是一些由 0-255 之间十六进制数字组成的数组。
- 赋值原则
我们可以通过数组下标的方式来读取 Buffer 中每一位的值,同样也可以改变其值。赋值原则是:1. 如果大于 256 ,则依次减去 256 直到不大于为止;2. 如果小于 0 ,则依次增加 256 直到大于 0 为止;3. 如果是小数,则取整数部分。
const buff = Buffer.alloc(10);
buff[0] = 10;
console.log(buff[0]); // 输出 10
buff[0] = 256;
console.log(buff[0]); // 输出 0
buff[0] = -10;
console.log(buff[0]); // 输出 246
buff[0] = 1.123;
console.log(buff[0]); // 输出 1
- 内存使用
Buffer 属于堆外内存,没有 V8 引擎在内存上的限制(64 位系统 1.4GB,32 位系统 0.7GB)。
- 优势
经验证,在网络传输中直接传输 Buffer 要比传输字符串要更高效,因为省去了不必要的转换过程。