首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ArrayBuffer

ArrayBuffer?对象用来表示通用的、固定长度的原始二进制数据缓冲区。ArrayBuffer?不能直接操作,而是要通过类型数组对象DataView对象来操作,它们会将缓冲区中的数据表示为特定的格式,并通过这些格式来读写缓冲区的内容。

语法

代码语言:javascript
复制
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.transfer(oldBuffer [, newByteLength])

返回一个新的 ArrayBuffer 对象,其内容取自oldBuffer中的数据,并且根据newByteLength的大小对数据进行截取或补 0。

ArrayBuffer.slice()ArrayBuffer.prototype.slice()功能相同。

ArrayBuffer?实例

所有?ArrayBuffer?实例都会从ArrayBuffer.prototype继承属性和方法。

属性

ArrayBuffer.prototype.constructor指定函数,它创建一个对象的原型。其初始值是标准ArrayBuffer内置构造函数。ArrayBuffer.prototype.byteLength只读数组的字节大小。在数组创建时确定,并且不可变更。只读

方法

ArrayBuffer.prototype.slice()返回一个新的ArrayBuffer,它的内容是这个ArrayBuffer的字节副本,从begin(包括),到end(不包括)。如果begin或end是负数,则指的是从数组末尾开始的索引,而不是从头开始。

示例

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

代码语言:javascript
复制
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 标准中的初始定义。规定了必须通过 new 来调用构造函数

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

?

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com