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

構文

new ArrayBuffer(length)

引数

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

戻り値

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

例外

lengthNumber.MAX_SAFE_INTEGER (>= 2 ** 53) より大きい場合、または負の数値の場合、RangeError が発生します。

説明

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

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

プロパティ

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

メソッド

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

インスタンス

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

プロパティ

ArrayBuffer.prototype.constructor
オブジェクトのプロトタイプを生成する関数を指定します。既定値は標準で組み込まれた ArrayBuffer コンストラクターです。
ArrayBuffer.prototype.byteLength 読取専用
配列のバイト単位の大きさです。これは、配列が構築されるときに設定され、変更されません。読み取り専用です。

メソッド

ArrayBuffer.prototype.slice()
新しい ArrayBuffer を返し、これにはこの ArrayBufferbegin から end の手前までのバイト単位の内容がコピーされます。 begin または end のどちらかが負の数の場合、これは配列の先頭からではなく、末尾からのインデックスを表します。

ArrayBuffer.slice()
ArrayBuffer.prototype.slice() と同じ機能を持ちます。

この例では、バッファを参照する Int32Array ビューで 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 Latest Draft (ECMA-262)
ArrayBuffer の定義
ドラフト  

ブラウザー実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
ArrayBufferChrome 完全対応 7Edge 完全対応 12Firefox 完全対応 4IE 完全対応 10Opera 完全対応 11.6Safari 完全対応 5.1WebView Android 完全対応 4Chrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 4Opera Android 完全対応 12Safari iOS 完全対応 4.2Samsung Internet Android 完全対応 ありnodejs 完全対応 あり
ArrayBuffer() without new throwsChrome 完全対応 ありEdge 完全対応 14Firefox 完全対応 44IE 未対応 なしOpera 完全対応 ありSafari ? WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile ? Firefox Android 完全対応 44Opera Android ? Safari iOS ? Samsung Internet Android 完全対応 ありnodejs 完全対応 0.12
byteLengthChrome 完全対応 7Edge 完全対応 12Firefox 完全対応 4IE 完全対応 10Opera 完全対応 11.6Safari 完全対応 5.1WebView Android 完全対応 4Chrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 4Opera Android 完全対応 12Safari iOS 完全対応 4.2Samsung Internet Android 完全対応 ありnodejs 完全対応 あり
isViewChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 29IE 完全対応 11Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 29Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 ありnodejs 完全対応 あり
prototypeChrome 完全対応 7Edge 完全対応 12Firefox 完全対応 4IE 完全対応 10Opera 完全対応 11.6Safari 完全対応 5.1WebView Android 完全対応 4Chrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 4Opera Android 完全対応 12Safari iOS 完全対応 4.2Samsung Internet Android 完全対応 ありnodejs 完全対応 あり
sliceChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 12
補足
完全対応 12
補足
補足 The non-standard ArrayBuffer.slice() method has been removed in Firefox 53 (but the standardized version ArrayBuffer.prototype.slice() is kept.
IE 完全対応 11Opera 完全対応 ありSafari 完全対応 6WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 14
補足
完全対応 14
補足
補足 The non-standard ArrayBuffer.slice() method has been removed in Firefox 53 (but the standardized version ArrayBuffer.prototype.slice() is kept.
Opera Android 完全対応 ありSafari iOS 完全対応 6Samsung Internet Android 完全対応 ありnodejs 完全対応 あり
transfer
実験的非標準
Chrome 未対応 なしEdge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 未対応 なしSafari 未対応 なしWebView Android 未対応 なしChrome Android 未対応 なしEdge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android 未対応 なしnodejs 未対応 なし
@@speciesChrome ? Edge 完全対応 13Firefox 完全対応 48IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Edge Mobile ? Firefox Android 完全対応 48Opera Android ? Safari iOS ? Samsung Internet Android ? nodejs 完全対応 6.5.0
完全対応 6.5.0
完全対応 6.0.0
無効
無効 From version 6.0.0: this feature is behind the --harmony runtime flag.

凡例

完全対応  
完全対応
未対応  
未対応
実装状況不明  
実装状況不明
実験的。動作が変更される可能性があります。
実験的。動作が変更される可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。
実装ノートを参照してください。
実装ノートを参照してください。
ユーザーが明示的にこの機能を有効にしなければなりません。
ユーザーが明示的にこの機能を有効にしなければなりません。

互換に関する注記

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);

関連項目

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

最終更新者: mdnwebdocs-bot,