このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
ArrayBuffer
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
* Some parts of this feature may have varying levels of support.
ArrayBuffer オブジェクトは、一般的な生のバイナリーデータバッファーを表現するために使用します。
これはバイトの配列で、他の言語ではよく「バイト配列」と呼ばれます。ArrayBuffer の内容を直接操作することはできません。代わりに、バッファーを特定の形式で表現する型付き配列オブジェクトまたはDataView オブジェクトのいずれかを作成して、バッファーの内容を読み書きします。
ArrayBuffer() コンストラクターは、指定した長さのArrayBuffer をバイト単位で作成します。既存のデータから、たとえば、Base64 文字列やローカルファイルからから配列バッファーを取得することもできます。
ArrayBuffer は移譲可能オブジェクトです。
In this article
解説
>ArrayBuffer のサイズ変更
ArrayBuffer オブジェクトはmaxByteLength オプションを指定してArrayBuffer() コンストラクターを呼び出すことで、サイズを変更することができるようになります。ArrayBuffer がサイズ変更可能かどうか、またその最大サイズを知るには、それぞれresizable とmaxByteLength のプロパティにアクセスすれば分かります。サイズ変更可能なArrayBuffer には、resize() を呼び出して新しいサイズを割り当てることができます。新しいバイトは 0 に初期化されます。
これらの機能により、ArrayBuffer のサイズ変更がより効率的になります。そうしないと、新しいサイズのバッファーのコピーを持たなければなりません。また、この点で JavaScript が WebAssembly と同等になります(WASM のリニアメモリーはWebAssembly.Memory.prototype.grow() でサイズ変更が可能です)。
コンストラクター
ArrayBuffer()新しい
ArrayBufferオブジェクトを作成します。
静的プロパティ
get ArrayBuffer[Symbol.species]派生オブジェクトを作成する際に使用するコンストラクター関数です。
静的メソッド
ArrayBuffer.isView()argが型付き配列オブジェクトやDataViewのような ArrayBuffer ビューのいずれかである場合はtrueを返します。それ以外の場合はfalseを返します。
インスタンスプロパティ
これらのプロパティはArrayBuffer.prototype で定義されており、すべてのArrayBuffer インスタンスで共有されます。
ArrayBuffer.prototype.byteLengthArrayBufferのサイズをバイト単位で指定します。これは配列の構築時に設定され、ArrayBufferがサイズ変更可能な場合にのみArrayBuffer.prototype.resize()メソッドを使用して変更することができます。ArrayBuffer.prototype.maxByteLengthExperimental読み取り専用で、
ArrayBufferのサイズを変更できる最大長をバイト数で指定します。これは配列が構築される際に設定され、変更することはできません。ArrayBuffer.prototype.resizableExperimental読み取り専用。
ArrayBufferのサイズを変更できる場合はtrueを、変更できない場合はfalseを返します。ArrayBuffer.prototype.constructorインスタンスオブジェクトを作成したコンストラクター関数。
ArrayBufferインスタンスの場合、初期値はArrayBufferコンストラクターです。ArrayBuffer.prototype[Symbol.toStringTag]@@toStringTagプロパティの初期値は文字列"ArrayBuffer"です。このプロパティはObject.prototype.toString()で使用されます。
インスタンスメソッド
ArrayBuffer.prototype.slice()新しい
ArrayBufferに、begin(の位置) からend(の手前) までのバイトのコピーを入れて返します。beginまたはendのどちらかが負の値の場合は、配列の先頭からではなく、配列の末尾からの位置を指します。ArrayBuffer.prototype.resize()ExperimentalArrayBufferを指定したサイズ(バイト単位)にサイズ変更します。
例
>ArrayBuffer の作成
この例では、バッファーを参照するInt32Array ビューを持つ 8 バイトのバッファーを作成します。
const buffer = new ArrayBuffer(8);const view = new Int32Array(buffer);仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-arraybuffer-objects> |