欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

ArrayBuffer 有大用

ArrayBuffer

尝试一下



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

它是一个字节数组,通常在其他语言中称为“byte array”。

你不能直接操作 ArrayBuffer 的内容,而是要通过类型数组对象或 DataView 对象来操作,它们会将缓冲区中的数据表示为特定的格式,并通过这些格式来读写缓冲区的内容。

语法

new ArrayBuffer(length)

参数

  • length

  • 要创建的 ArrayBuffer 的大小,单位为字节。

返回值

一个指定大小的 ArrayBuffer 对象,其内容被初始化为 0。

异常

如果 length 大于 Number.MAX_SAFE_INTEGER(>= 2 ** 53)或为负数,则抛出一个  RangeError  异常。

描述

ArrayBuffer 构造函数用来创建一个指定字节长度的 ArrayBuffer 对象。

以现有数据获取 ArrayBuffer

属性

方法

ArrayBuffer 实例

所有 ArrayBuffer 实例都会从 ArrayBuffer.prototype (en-US) 继承属性和方法。

属性

{{page('zh-CN/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','属性')}}

方法

{{page('zh-CN/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','方法')}}

示例

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

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

规范

SpecificationStatusComment
Typed Array SpecificationObsolete已被 ECMAScript 6 中的 ArrayBuffer 取代
ECMAScript 2015 (6th Edition, ECMA-262)
ArrayBuffer
Standard在 ECMA 标准中的初始定义。规定了必须通过 new 来调用构造函数
ECMAScript (ECMA-262)
ArrayBuffer
Living Standard

浏览器兼容性

Report problems with this compatibility data on GitHub


desktopmobileserver

ChromeEdgeFirefoxInternet ExplorerOperaSafariChrome AndroidFirefox for AndroidOpera AndroidSafari on iOSSamsung InternetWebView AndroidDenoNode.js
ArrayBuffer
@@species
ArrayBuffer() constructor
ArrayBuffer() without new throws
byteLength
isView
slice

Legend

  • Full support

  • Full support

  • No support

  • No support

  • See implementation notes.

  • User must explicitly enable this feature.



兼容性提醒

从 ECMAScript 2015 开始,ArrayBuffer 对象需要用 new 运算符创建。如果调用构造函数时没有使用 new,将会抛出 TypeError  异常。

var dv = ArrayBuffer(10);
// TypeError: calling a builtin ArrayBuffer constructor
// without new is forbidden
var dv = new ArrayBuffer(10);

相关链接

来自  https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer


普通分类: