Buffers和类型数组

    在以下的注意事项下,从一个 Buffer 里创建一个新的类型数组(TypedArray)也是有可能的:

    1. 将 Buffer 对象的内存以不共享的方式拷贝到这个类型数组(TypedArray)中。

    2. 将 Buffer 对象的内存解释执行为一个不同元素的数组,并且不是目标类型的字节数组。这就像,new Uint32Array(Buffer.from([1,2,3,4])) 创建了一个4元素的 Uint32Array 的包含元素 [1,2,3,4] ,而不是 包含一个单一的元素 [0x1020304][0x4030201]

    请注意,当通过类型数组的 .buffer 属性创建一个 Buffer 时,有可能只能通过传入 byteOffsetlength 参数使用底层类型数组的一部分。

    1. const buf = Buffer.from(arr.buffer, 0, 16);
    2. console.log(buf.length);

    Buffer.from()TypedArray.from() (如,Uint8Array.from())有着不同的签名和实现。具体而言,类型数组的变种接受第二参数,在类型数组的每个元素上调用一个映射函数。

    Buffer.from() 不支持使用一个映射函数: