ArrayBuffer() コンストラクター

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

ArrayBuffer() コンストラクターは ArrayBuffer オブジェクトを生成するために使用されます。

試してみましょう

構文

js
new ArrayBuffer(length)
new ArrayBuffer(length, options)

メモ: ArrayBuffer()new でのみ構築することができます。new 無しで呼び出そうとすると、TypeError が発生します。

引数

length

作成する配列バッファーのサイズをバイト単位で指定します。

options 省略可 Experimental

オブジェクトであり、以下のプロパティを持つことができます。

maxByteLength 省略可 Experimental

配列バッファーがサイズ変更可能な最大サイズ(バイト単位)。

返値

指定したサイズの新しい ArrayBuffer オブジェクト。その maxByteLength プロパティには、maxByteLength を指定した場合はその値が設定されます。内容は 0 に初期化されます。

例外

RangeError

以下のいずれかに該当する場合に発生します。

  • length または maxByteLengthNumber.MAX_SAFE_INTEGER (≥ 253) より大きいか、負の数である。
  • lengthmaxByteLength より大きい。

ArrayBuffer の作成

この例では、バッファーを参照する Int32Array ビューを持つ 8 バイトのバッファーを作成しています。

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

サイズ変更可能な ArrayBuffer の作成

この例では、最大 16 バイトまでリサイズ可能な 8 バイトのバッファーを作成し、resize() でそれを 12 バイトにサイズ変更しています。

js
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });

buffer.resize(12);

メモ: maxByteLength は使用する用途に応じて使用可能な最小値に設定することが推奨されます。メモリ不足になる危険を縮小するために、1073741824 (1GB) を超えないようにする必要があります。

仕様書

Specification
ECMAScript Language Specification
# sec-arraybuffer-constructor

ブラウザーの互換性

BCD tables only load in the browser

関連情報