SharedArrayBuffer() コンストラクター
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2021年12月.
* Some parts of this feature may have varying levels of support.
メモ:
SharedArrayBuffer コンストラクターは、特定のセキュリティの要件に適合しない限り、グローバルに利用できるとは限りません。
SharedArrayBuffer() コンストラクターは SharedArrayBuffer オブジェクトを生成します。
構文
new SharedArrayBuffer(length)
new SharedArrayBuffer(length, options)
引数
length-
生成する配列バッファーの長さをバイト数で指定します。
options省略可-
以下のプロパティを持つことができるオブジェクトです。
maxByteLength省略可-
共有配列バッファーのサイズを変更できる最大サイズ(バイト単位)です。
返値
指定したサイズの新しい SharedArrayBuffer オブジェクトで、指定した場合は、その maxByteLength プロパティを指定した maxByteLength に設定します。中身は 0 に初期化されます。
例
これらの例は、コンソールや任意のウェブページから直接実行することはできません。SharedArrayBuffer は、そのセキュリティ要件が満たされない限り定義されないからです。
基本的な使い方
バッファーを作成し、そのサイズをバイト単位で指定します。
// SharedArrayBuffer をバイト数でサイズを指定して作成
const buffer = new SharedArrayBuffer(8);
console.log(buffer.byteLength); // 8
SharedArrayBuffer を生成するには常に new 演算子を使用する
SharedArrayBuffer コンストラクターは new 演算子で構築する必要があります。 SharedArrayBuffer コンストラクターを new なしで呼び出すと、 TypeError が発生します。
const sab = SharedArrayBuffer(1024);
// TypeError: calling a builtin SharedArrayBuffer constructor
// without new is forbidden
const sab = new SharedArrayBuffer(1024);
伸長可能な SharedArrayBuffer の伸長
この例では、最大長 16 バイトまで伸長可能な 8 バイトのバッファーを作成し、それを grow() で 12 バイトに伸長します。
const buffer = new SharedArrayBuffer(8, { maxByteLength: 16 });
buffer.grow(12);
メモ:
maxByteLength は、用途に応じて実現可能な最小値に設定することをお勧めします。メモリー不足エラーのリスクを縮小するため、 1073741824 (1GB) を超えることは決してないようにしてください。
仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-sharedarraybuffer-constructor> |