ArrayBuffer は、一般的な固定長のバイナリデータのバッファを示すために使われるデータタイプです。ArrayBuffer の内容物を直接操作することはできません。代わりにバッファを特定の形式で表現し、またバッファの内容物を読み書きするために使用される typed array objectDataView オブジェクトを作成します。

構文

new ArrayBuffer(length)

パラメーター

length
ArrayBuffer を生成するためのバイト単位のサイズ。

戻り値

指定したサイズの新しい ArrayBuffer オブジェクト。内容物は 0 に初期化される。

説明

ArrayBuffer コンストラクターは、与えられたバイト単位の長さの新しい ArrayBuffer を生成します。

既存のデータから ArrayBuffer を取得する

プロパティ

ArrayBuffer.length
ArrayBuffer コンストラクターの length プロパティの値は 1。
get ArrayBuffer[@@species]
派生オブジェクトを生成するために使用されるコンストラクター関数。
ArrayBuffer.prototype
すべての ArrayBuffer オブジェクトへのプロパティ追加できる。

メソッド

ArrayBuffer.isView(arg)
argTypedArray オブジェクトDataView のいずれかのような ArrayBuffer view 場合、true を返す。そうでなければ false を返す。
ArrayBuffer.transfer(oldBuffer [, newByteLength])
内容物が oldBuffer のデータから取られて、newByteLength によって切り捨てられるか、ゼロ拡張された新しい ArrayBuffer を返す。

ArrayBuffer インスタンス

すべての ArrayBuffer インスタンスは ArrayBuffer.prototype を継承します。

プロパティ

ArrayBuffer.prototype.constructor
Specifies the function that creates an object's prototype. The initial value is the standard built-in ArrayBuffer constructor.
ArrayBuffer.prototype.byteLength Read only
The size, in bytes, of the array. This is established when the array is constructed and cannot be changed. Read only.

メソッド

ArrayBuffer.prototype.slice()
Returns a new ArrayBuffer whose contents are a copy of this ArrayBuffer's bytes from begin, inclusive, up to end, exclusive. If either begin or end is negative, it refers to an index from the end of the array, as opposed to from the beginning.

この例では、バッファを参照する Int32Array view で 8 バイトのバッファを生成しています:

var buffer = new ArrayBuffer(8);
var view   = new Int32Array(buffer);

仕様

仕様 ステータス コメント
Typed Array Specification 廃止された ECMAScript 6 に取って代わられた。
ECMAScript 2015 (6th Edition, ECMA-262)
ArrayBuffer の定義
標準 ECMA 標準の初期定義。new が必要なように指定された。
ECMAScript 2017 Draft (ECMA-262)
ArrayBuffer の定義
ドラフト  

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート 7.0 4.0 (2) 10 11.6 5.1
new がない場合、ArrayBuffer() が例外をスロー ? 44 (44) ? ? ?
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート 4.0 (有) 4.0 (2) 10 11.6 4.2
new がない場合、ArrayBuffer() が例外をスロー ? ? 44.0 (44) ? ? ?

互換のための注記

ECMAScript 2015 から、ArrayBuffer コンストラクターは new 演算子を必要とするようになりました。new なしで関数として ArrayBuffer コンストラクターを呼び出すと、TypeError をスローするようになっています。

var dv = ArrayBuffer(10);
// TypeError: calling a builtin ArrayBuffer constructor 
// without new is forbidden
var dv = new ArrayBuffer(10);

関連項目

ドキュメントのタグと貢献者

 このページの貢献者: YuichiNukiyama, teoli, Yukoba, ethertank, saneyuki_s, yyss
 最終更新者: YuichiNukiyama,