Node.js - Buffer 与 Uint8Array

问题描述 投票:0回答:1

在fs模块的文档1中,我们可以阅读(对于

writeFile
方法):

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

在同一文档2中说:

随着 TypedArray 的推出,Buffer 类实现了 Uint8Array API 以更优化且适合的方式 Node.js。

那么,如果

Buffer
类实现了
Unint8Array
,您能告诉我为什么我们需要从
Unint8Array
转换为
Buffer
吗?

javascript node.js buffer uint8array
1个回答
49
投票

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

从历史上看,当 Node.js 第一次出现时,通用的 Uint8Arrays 还不存在,因此它必须发明自己的“Buffer”类型来处理二进制数据。在 ES6 引入通用

Uint8Array
后,Node.js(4.0 版之后)决定将 Buffer 从单独的数据类型 ->
Uint8Array
的子类迁移过来(以尝试使其与浏览器更加兼容)
Uint8Array
)。

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

© www.soinside.com 2019 - 2024. All rights reserved.