Buffer.from(arrayBuffer[, byteOffset[, length]])
arrayBuffer<ArrayBuffer> | <SharedArrayBuffer>ArrayBuffer、SharedArrayBuffer,例如TypedArray的.buffer属性。byteOffset<integer> 要暴露的第一个字节的索引。 默认值:0。length<integer> 要暴露的字节数。 默认值:arrayBuffer.byteLength - byteOffset。
这将创建 ArrayBuffer 的视图,而无需复制底层内存。
const arr = new Uint16Array(2);
arr[0] = 5000;
arr[1] = 4000;
// 与 `arr` 共享内存。
const buf = Buffer.from(arr.buffer);
console.log(buf);
// 打印: <Buffer 88 13 a0 0f>
// 更改原始的 Uint16Array 也会更改缓冲区。
arr[1] = 6000;
console.log(buf);
// 打印: <Buffer 88 13 70 17>可选的 byteOffset 和 length 参数指定了 arrayBuffer 中将由 Buffer 共享的内存范围。
const ab = new ArrayBuffer(10);
const buf = Buffer.from(ab, 0, 2);
console.log(buf.length);
// 打印: 2如果 arrayBuffer 不是 ArrayBuffer 或 SharedArrayBuffer 或其他适用于 Buffer.from() 变体的类型,则将抛出 TypeError。
arrayBuffer<ArrayBuffer> | <SharedArrayBuffer> AnArrayBuffer,SharedArrayBuffer, for example the.bufferproperty of aTypedArray.byteOffset<integer> Index of first byte to expose. Default:0.length<integer> Number of bytes to expose. Default:arrayBuffer.byteLength - byteOffset.
This creates a view of the ArrayBuffer without copying the underlying
memory. For example, when passed a reference to the .buffer property of a
TypedArray instance, the newly created Buffer will share the same
allocated memory as the TypedArray.
const arr = new Uint16Array(2);
arr[0] = 5000;
arr[1] = 4000;
// Shares memory with `arr`.
const buf = Buffer.from(arr.buffer);
console.log(buf);
// Prints: <Buffer 88 13 a0 0f>
// Changing the original Uint16Array changes the Buffer also.
arr[1] = 6000;
console.log(buf);
// Prints: <Buffer 88 13 70 17>The optional byteOffset and length arguments specify a memory range within
the arrayBuffer that will be shared by the Buffer.
const ab = new ArrayBuffer(10);
const buf = Buffer.from(ab, 0, 2);
console.log(buf.length);
// Prints: 2A TypeError will be thrown if arrayBuffer is not an ArrayBuffer or a
SharedArrayBuffer or another type appropriate for Buffer.from()
variants.