SharedArrayBuffer() コンストラクター

Baseline Widely available *

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

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

メモ: SharedArrayBuffer コンストラクターは、特定のセキュリティの要件に適合しない限り、グローバルに利用できるとは限りません。

SharedArrayBuffer() コンストラクターSharedArrayBuffer オブジェクトを生成し、これは ArrayBuffer オブジェクトと似た、汎用的な、固定長の生のバイナリーデータバッファーを表します。

試してみましょう

// SharedArrayBuffer をバイト単位のサイズで作成
const buffer = new SharedArrayBuffer(8);

console.log(buffer.byteLength);
// 期待される出力: 8

構文

js
new SharedArrayBuffer(length)
new SharedArrayBuffer(length, options)

メモ: SharedArrayBuffer()new を付けた場合のみ構築できます。 new をつけずに呼び出そうとすると、 TypeError が発生します。

引数

length

生成する配列バッファーの長さをバイト数で指定します。

options 省略可

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

maxByteLength 省略可

共有配列バッファーのサイズを変更できる最大サイズ(バイト単位)です。

返値

指定したサイズの新しい SharedArrayBuffer オブジェクトで、指定した場合は、その maxByteLength プロパティを指定した maxByteLength に設定します。コンテンツは 0 に初期化されます。

SharedArrayBuffer を生成するには常に new 演算子を使用する

SharedArrayBuffer コンストラクターは new 演算子で構築する必要があります。 SharedArrayBuffer コンストラクターを new なしで呼び出すと、 TypeError が発生します。

js
const sab = SharedArrayBuffer(1024);
// TypeError: calling a builtin SharedArrayBuffer constructor
// without new is forbidden
js
const sab = new SharedArrayBuffer(1024);

伸長可能な SharedArrayBuffer の伸長

この例では、最大長 16 バイトまで伸長可能な 8 バイトのバッファーを作成し、それを grow() で 12 バイトに伸長します。

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

buffer.grow(12);

メモ: maxByteLength は、用途に応じて実現可能な最小値に設定することをお勧めします。メモリー不足エラーのリスクを縮小するため、 1073741824 (1GB) を超えることは決してないようにしてください。

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-sharedarraybuffer-constructor

ブラウザーの互換性

関連情報