ArrayBuffer

ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区。

它是一个字节数组,通常在其他语言中称为“byte array”。你不能直接操作 ArrayBuffer 中的内容;而是要通过类型化数组对象DataView 对象来操作,它们会将缓冲区中的数据表示为特定的格式,并通过这些格式来读写缓冲区的内容。

ArrayBuffer() (en-US) 构造函数创建一个以字节为单位的给定长度的新 ArrayBuffer。你也可以从现有的数据(例如,从 Base64 字符串或者从本地文件)获取数组缓冲区。

ArrayBuffer 是一个可转移对象

构造函数

ArrayBuffer() (en-US)

创建一个新的 ArrayBuffer 对象。

静态属性

get ArrayBuffer[@@species]

用于创建派生对象的构造函数。

静态方法

ArrayBuffer.isView()

如果 arg 是 ArrayBuffer 视图之一,则返回 true,例如类型化数组对象或者DataView。否则返回 false

实例属性

ArrayBuffer.prototype[@@toStringTag]

@@toStringTag 属性的初始值是 "ArrayBuffer" 字符串。该属性在 Object.prototype.toString() 中被使用。

ArrayBuffer.prototype.byteLength

ArrayBuffer 的只读大小(以字节为单位)。这是在数组构建时确定的,无法更改。

实例方法

ArrayBuffer.prototype.slice()

返回一个新的 ArrayBuffer,它的内容是该 ArrayBufferbegin(包括)到 end(不包括)字节的拷贝。如果 beginend 是负数,它则指的是从数组末尾开始的索引,而不是从头开始的索引。

示例

创建 ArrayBuffer

下面的例子创建了一个 8 字节的缓冲区,并使用 Int32Array 视图引用它。

js

const buffer = new ArrayBuffer(8);
const view = new Int32Array(buffer);

规范

Specification
ECMAScript Language Specification
# sec-arraybuffer-objects

浏览器兼容性

BCD tables only load in the browser

参见