DataView() コンストラクター

DataView() コンストラクターは、 DataView オブジェクトを生成するために使用します。

構文

new DataView(buffer [, byteOffset [, byteLength]])

引数

buffer
既存の ArrayBuffer または SharedArrayBuffer で、新しい DataView オブジェクトの背景となるストレージとして使用されます。
byteOffset Optional
新しいビューが参照するバッファーの最初のバイトまでのオフセットをバイト単位で指定します。指定されていない場合、バッファービューは最初のバイトから始まります。
byteLength Optional
バイト配列の要素数です。指定しない場合、ビューの長さはバッファーの長さと一致します。

返値

指定されたデータバッファーを表す DataView オブジェクトです。 (これはおそらくあまり役に立たない説明でした。)

返されるオブジェクトは、バイトの配列バッファーの「インタープリター」と考えることができます。 - これは読み書きの際に、バッファー内に正しく収まるように数値を変換する方法を知っています。これは、整数や浮動小数点数の変換、エンディアン、その他バイナリ形式で数値を表現する際の詳細を扱うことを意味します。

例外

RangeError

byteOffsetbyteLength 引数の値がバッファーの末尾を超えて広がる結果になる場合に発生します。

例えば、バッファーが16バイトの長さで、 byteOffset が8バイト、 byteLength が10バイトの場合、バッファーの全長を2バイト超えるビューを展開しようとするので、このエラーが発生します。

DataView の使用

var buffer = new ArrayBuffer(16);
var view = new DataView(buffer, 0);

view.setInt16(1, 42);
view.getInt16(1); // 42

仕様書

仕様書
ECMAScript (ECMA-262)
DataView constructor の定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
DataView() constructorChrome 完全対応 9Edge 完全対応 12Firefox 完全対応 15IE 完全対応 10Opera 完全対応 12.1Safari 完全対応 5.1WebView Android 完全対応 4Chrome Android 完全対応 18Firefox Android 完全対応 15Opera Android 完全対応 12.1Safari iOS 完全対応 4.2Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.10
DataView() without new throwsChrome 完全対応 11Edge 完全対応 13Firefox 完全対応 40IE 未対応 なしOpera 完全対応 15Safari 完全対応 5.1WebView Android 完全対応 ≤37Chrome Android 完全対応 18Firefox Android 完全対応 40Opera Android 完全対応 14Safari iOS 完全対応 5.1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.10
SharedArrayBuffer accepted as bufferChrome 完全対応 68
完全対応 68
未対応 60 — 63
補足
補足 Chrome disabled SharedArrayBuffer on January 5, 2018 to help reduce the efficacy of speculative side-channel attacks. This was a temporary removal while mitigations were put in place.
Edge 完全対応 79Firefox 完全対応 79
完全対応 79
完全対応 57
補足 無効
補足 Support was disabled by default to mitigate speculative execution side-channel attacks (Mozilla Security Blog).
無効 From version 57: this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
未対応 55 — 57
未対応 46 — 55
無効
無効 From version 46 until version 55 (exclusive): this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE 未対応 なしOpera 未対応 なしSafari 未対応 10.1 — 11WebView Android 未対応 60 — 63
補足
未対応 60 — 63
補足
補足 Chrome disabled SharedArrayBuffer on January 5, 2018 to help reduce the efficacy of speculative side-channel attacks. This is intended as a temporary measure until other mitigations are in place.
Chrome Android 未対応 60 — 63
補足
未対応 60 — 63
補足
補足 Chrome disabled SharedArrayBuffer on January 5, 2018 to help reduce the efficacy of speculative side-channel attacks. This is intended as a temporary measure until other mitigations are in place.
Firefox Android 完全対応 79
完全対応 79
完全対応 57
補足 無効
補足 Support was disabled by default to mitigate speculative execution side-channel attacks (Mozilla Security Blog).
無効 From version 57: this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
未対応 55 — 57
未対応 46 — 55
無効
無効 From version 46 until version 55 (exclusive): this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android 未対応 なしSafari iOS 未対応 10.3 — 11Samsung Internet Android 未対応 なし
補足
未対応 なし
補足
補足 Chrome disabled SharedArrayBuffer on January 5, 2018 to help reduce the efficacy of speculative side-channel attacks. This is intended as a temporary measure until other mitigations are in place.
nodejs 完全対応 8.10.0

凡例

完全対応  
完全対応
未対応  
未対応
実装ノートを参照してください。
実装ノートを参照してください。
ユーザーが明示的にこの機能を有効にしなければなりません。
ユーザーが明示的にこの機能を有効にしなければなりません。

関連情報