Unit8Array 是一个类型化数组,表示 8 位无符号数组 整数。
这是我从 MDN 学到的。 但为什么我们要专门使用Unit8Array呢? 为什么不使用普通数组来代替呢? 为什么Unit8Array经常与二进制数据相关?
我也有同样的问题,经过一番搜索后,我知道了:
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 用于使用数组缓冲区存储二进制数据(例如图像),但又不想浪费内存存储。
以上如有错误请指正。
参考资料: