Uint8Array 的好处或用例是什么?

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

Unit8Array 是一个类型化数组,表示 8 位无符号数组 整数。

这是我从 MDN 学到的。 但为什么我们要专门使用Unit8Array呢? 为什么不使用普通数组来代替呢? 为什么Unit8Array经常与二进制数据相关?

javascript binary blob
1个回答
0
投票

我也有同样的问题,经过一番搜索后,我知道了:

Unit8Array 存储大小为一字节的数据,例如:

const arr = new Unit8Array([125,255,256,257])
consol.log arr[0]; //125
consol.log arr[1]; //255
consol.log arr[2]; //0 (256%256)
consol.log arr[3]; //1 (257%256)

因为1个字节可以容纳0到255。

Unit16Array 和 Unit32Array 的概念相同。

但是什么时候使用它?

一个普通数组可以保存任意大小的值并且可以调整大小。

缓冲区数组无法调整大小,用于在内存中存储二进制数据。

UInt8Array 提供了有用的函数来对 ArrayBuffer 执行字节级操作。与 ArrayBuffer 不同,UInt8Array 可以进行切片和调整大小。 Web 浏览器和 NodeJS 运行时也都支持它。 由于其紧凑性,Uint8Array 是通过线路传输的最佳数据类型。

总之,Uint8Array 用于使用数组缓冲区存储二进制数据(例如图像),但又不想浪费内存存储。

以上如有错误请指正。

参考资料:

中型博客

MDN

如何使用uint***数组堆栈溢出

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