ArrayBuffer
语法
new ArrayBuffer(length)参数
length要创建的ArrayBuffer的大小,单位为字节。
返回值
一个指定大小的ArrayBuffer对象,其内容被初始化为 0。
异常
如果 length 大于 Number.MAX_SAFE_INTEGER(>= 2 ** 53)或为负数,则抛出一个 RangeError 异常。
描述
ArrayBuffer构造函数用来创建一个指定字节长度的 ArrayBuffer 对象。
以现有数据获取 ArrayBuffer
属性
ArrayBuffer.lengthArrayBuffer 构造函数的 length 属性,其值为1。
get ArrayBuffer[@@species]返回 ArrayBuffer 的构造函数。
ArrayBuffer.prototype通过 ArrayBuffer 的原型对象可以为所有 ArrayBuffer 对象添加属性。
方法
ArrayBuffer.isView(arg)如果参数是 ArrayBuffer 的视图实例则返回true,例如类型数组对象 或 DataView对象;否则返回false。
返回一个新的 ArrayBuffer 对象,其内容取自oldBuffer中的数据,并且根据newByteLength的大小对数据进行截取或补 0。
ArrayBuffer 实例
所有 ArrayBuffer 实例都会从ArrayBuffer.prototype继承属性和方法。
属性
ArrayBuffer.prototype.constructor指定函数,它创建一个对象的原型。其初始值是标准ArrayBuffer内置构造函数。ArrayBuffer.prototype.byteLength只读数组的字节大小。在数组创建时确定,并且不可变更。只读。
方法
ArrayBuffer.prototype.slice()返回一个新的ArrayBuffer,它的内容是这个ArrayBuffer的字节副本,从begin(包括),到end(不包括)。如果begin或end是负数,则指的是从数组末尾开始的索引,而不是从头开始。
示例
下面的例子创建了一个 8 字节的缓冲区,并使用一个Int32Array来引用它:
var buffer = new ArrayBuffer(8);
var view = new Int32Array(buffer);规范
Specification | Status | Comment |
|---|---|---|
Typed Array Specification | Obsolete | 已被 ECMAScript 6 中的 ArrayBuffer 取代 |
ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'ArrayBuffer' in that specification. | Standard | 在 ECMA 标准中的初始定义。规定了必须通过 |
ECMAScript Latest Draft (ECMA-262)The definition of 'ArrayBuffer' in that specification. | Living Standard | |
浏览器兼容性
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
Basic support | 7.0 | (Yes) | 4.0 (2) | 10 | 11.6 | 5.1 |
ArrayBuffer() without new throws | ? | ? | 44 (44) | ? | ? | ? |
ArrayBuffer.slice() | No support | (Yes) | (Yes) No support 53 (53) | No support | No support | ? |
Feature | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|---|
Basic support | 4.0 | (Yes) | (Yes) | 4.0 (2) | 10 | 11.6 | 4.2 |
ArrayBuffer() without new throws | ? | ? | ? | 44.0 (44) | ? | ? | ? |
ArrayBuffer.slice() | No support | No support | (Yes) | (Yes) No support 53.0 (53) | No support | No support | ? |
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com

