ArrayBuffer & TypedArray
ArrayBuffer
ArrayBuffer
对象是一个存储二进制数据的 buffer,无法直接操作,需要借助 DataView 或 TypedArray 对象来读写其值。
DataView
DataView
对象拥有一系列 set 和 get 方法,可以读写其拥有的 ArrayBuffer
特定位置的值,且可以控制读写时的大小端。如果希望灵活操作一块缓存数据,可以使用 DataView
。
它本身并不具备类型信息,类型是在每一次读写时随所调用的方法动态确定的。
注意它不能使用中括号索引。
TypedArray
TypedArray
是与普通列表不同,可针对二进制数据读写的一系列数组类型的基类。这一类数组可以使用中括号索引读写。如果希望批量地维护一列特定位宽和长度的数据,并且能方便地使用中括号语法,可以使用 TypedArray
。
它的元素类型在构造时就确定了。
它可以使用中括号索引读写。
Offset & Length
DataView
和 TypedArray
都可以在从 ArrayBuffer
构造时指定 offset 和 length,即从原 buffer 相对起始位置偏移多少(字节)开始,覆盖多少(字节)的长度。这样就可以只针对 buffer 的特定数据段操作。但注意这种情况下 view 对象返回的 byteLength
和其 buffer 属性的 byteLength
并不会一致,其 buffer 属性保持着先前的 ArrayBuffer
的属性。
Methods
大多数 Array 的方法 Typed Array 都有。此处列举一些 Typed Array 独有的方法。
Reference
[1] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer
[2] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView
[3] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays
[4] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray
[5] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set
Last updated
Was this helpful?