console.log(buf3); // <Buffer 01 00 e6>
console.log(buf4); // <Buffer 61 62 63 64 67 67 67>
console.log(buf4.toString()); // abcdggg
buf2.fill(0);
console.log(buf2); // <Buffer 00 00 00 00 00>
上面讲的不太清楚(以后再优化),因为我是初学,TypedArray 都没玩过呢!
但是放心,大腿在这呢 — Node源码解析 – buffer
源码链接: buffer.js
Buffer.byteLength(string[, encoding]): 返回 string 的实际的字节长度(注意不是字符长度)
let str1 = 'a';
let str2 = '小';
let str3 = 'aa';
let str4 = '小a';
console.log(str1.length); // 1
console.log(Buffer.byteLength(str1)); // 1
console.log(str2.length); // 1
console.log(Buffer.byteLength(str2)); // 3
console.log(str3.length); // 2
console.log(Buffer.byteLength(str3)); // 2
console.log(str4.length); // 2
console.log(Buffer.byteLength(str4)); // 4上面的汉字 小 的 UTF-8 码正好占用三个字节(xE5xB0x8F),所以才会有上面的结果。
Buffer.concat(list[, totalLength]): 连接多个 Buffer 实例或 Uint8Array 实例,并返回一个新的 Buffer 实例
const buf1 = Buffer.alloc(10);
const buf2 = Buffer.alloc(14);
const totalLength = buf1.length + buf2.length;
console.log(totalLength); // 24
const buf = Buffer.concat([buf1, buf2], totalLength);
console.log(buf.length); // 24
Buffer.isBuffer(obj): 判断一个对象是不是 Buffer 实例
Buffer.isEncoding(encoding): 判断是否支持指定的编码方式
console.log(Buffer.isEncoding('utf8')); // true
console.log(Buffer.isEncoding('utf9')); // false
Buffer.poolSize: 指定预分配的字节数的大小,默认为 8192(即 8 KB)
Buffer.prototype.buffer: 一个指向 ArrayBuffer 的引用
const arrayBuffer = new ArrayBuffer(16);
const buffer = Buffer.from(arrayBuffer);
console.log(buffer.buffer === arrayBuffer); // true
Buffer.prototype.equals(otherBuffer): 比较两个 Buffer 实例是否拥有完全相同的 bytes
const buf1 = Buffer.from('hello');
const buf2 = Buffer.from('hello');
console.log(buf1.equals(buf2)); // true用于迭代的方法
Buffer.prototype.entries()
Buffer.prototype.keys()
Buffer.prototype.values()
Buffer.prototype.fill(value[, offset[, end]][, encoding]):









