ArrayBuffer() コンストラクター
Baseline
広く利用可能
*
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
* この機能の一部は、対応レベルが異なる場合があります。
ArrayBuffer() コンストラクターは ArrayBuffer オブジェクトを生成するために使用されます。
試してみましょう
// ArrayBuffer をバイト単位のサイズで作成
const buffer = new ArrayBuffer(8);
console.log(buffer.byteLength);
// 予想される結果: 8
構文
js
new ArrayBuffer(length)
new ArrayBuffer(length, options)
引数
length-
作成する配列バッファーのサイズをバイト単位で指定します。
options省略可-
オブジェクトであり、以下のプロパティを持つことができます。
maxByteLength省略可-
配列バッファーがサイズ変更可能な最大サイズ(バイト単位)。
返値
指定したサイズの新しい ArrayBuffer オブジェクト。その maxByteLength プロパティには、maxByteLength を指定した場合はその値が設定されます。内容は 0 に初期化されます。
例外
RangeError-
以下のいずれかに該当する場合に発生します。
lengthまたはmaxByteLengthがNumber.MAX_SAFE_INTEGER(≥ 253) より大きいか、負の数である。lengthがmaxByteLengthより大きい。
例
>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) を超えないようにする必要があります。
仕様書
| 仕様書 |
|---|
| ECMAScript® 2027 Language Specification> # sec-arraybuffer-constructor> |