在 fs 模块的文档 1 中,我们可以阅读(对于 writeFile 方法):

const data = new Uint8Array(Buffer.from('Hello Node.js'));

在同一文档 2 中说:



所以如果 Buffer 类实现了一个 Unint8Array,你能告诉我为什么我们需要从一个 Buffer 转换为一个 Unint8Array 吗?

最佳答案

Uint8Array 是一个通用的字节数组,可在 nodejs 和浏览器中使用。 Buffer 是 Uint8Array 的子类,仅在 nodejs 中可用(由于历史原因)。两者都主要用于操作二进制(字节)数据。

从历史上看,当 nodejs 首次出现时,通用的 Uint8Arrays 并不存在,因此它必须发明自己的“缓冲区”类型来处理二进制数据。在 es6 引入通用 Uint8Arrays 之后,nodejs(4.0 版之后)决定从一个单独的数据类型迁移 Buffer -> Uint8Array 的子类(尝试使其与 Uint8Array 的浏览器更兼容)。

https://www.quora.com/What-is-the-relationship-between-a-Buffer-and-an-Uint8Array-in-Node-js

关于javascript - Node.js - 缓冲区与 Uint8Array,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54814215/

10-09 17:53