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.

* Some parts of this feature may have varying levels of support.

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

試してみましょう

// Create an ArrayBuffer with a size in bytes
const buffer = new ArrayBuffer(8);

console.log(buffer.byteLength);
// Expected output: 8

構文

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® 2025 Language Specification
# sec-arraybuffer-constructor

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
ArrayBuffer() constructor
maxByteLength option

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

関連情報