DataView
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.
DataView ビューは、バイナリーの ArrayBuffer 内の複数の数値型を、プラットフォームのエンディアンを意識することなく読み書きするための低水準インターフェイスを提供します。
解説
>エンディアン
多バイトの数値形式は、マシンアーキテクチャによってメモリー内での表現が異なります。説明はエンディアンを参照してください。DataView のアクセサーは、実行中のコンピューターのエンディアンに関わらず、データへのアクセス方法を明示的に制御します。例えば、WebAssembly のメモリーは常にリトルエンディアンであるため、マルチバイト値の読み書きには型付き配列ではなく DataView を使用すべきです。例については、WebAssembly.Memory を参照してください。
const littleEndian = (() => {
const buffer = new ArrayBuffer(2);
new DataView(buffer).setInt16(0, 256, true /* リトルエンディアン */);
// Int16Array はプラットフォームのエンディアンを使用する
return new Int16Array(buffer)[0] === 256;
})();
console.log(littleEndian); // true または false
メモ:
DataView はデフォルトでビッグエンディアンで読み書きしますが、ほとんどのプラットフォームはリトルエンディアンを使用しています。
コンストラクター
DataView()-
新しい
DataViewオブジェクトを作成します。
インスタンスプロパティ
これらのプロパティは DataView.prototype 上に定義られており、すべての DataView インスタンスで共有されます。
DataView.prototype.buffer-
この
DataViewによって参照されるArrayBufferを返します。 DataView.prototype.byteLength-
この
DataViewの長さを(バイト単位で)返します。 DataView.prototype.byteOffset-
ArrayBufferの開始位置からこのDataViewまでのオフセットを(バイト単位で)返します。 DataView.prototype.constructor-
インスタンスオブジェクトを作成したコンストラクター関数です。
DataViewインスタンスの場合、初期値はDataViewコンストラクターです。 DataView.prototype[Symbol.toStringTag]-
[Symbol.toStringTag]プロパティの初期値は文字列"DataView"です。このプロパティはObject.prototype.toString()で使用されています。
インスタンスメソッド
DataView.prototype.getBigInt64()-
この
DataViewの指定されたバイトオフセットから始まる 8 バイトを読み取り、符号付き 64 ビット整数値として解釈します。 DataView.prototype.getBigUint64()-
この
DataViewの指定されたバイトオフセットから始まる 8 バイトを読み取り、符号なし 64 ビット整数値として解釈します。 DataView.prototype.getFloat16()-
この
DataViewの指定されたバイトオフセットから始まる 2 バイトを読み取り、16 ビット浮動小数点値として解釈します。 DataView.prototype.getFloat32()-
この
DataViewの指定されたバイトオフセットから始まる 4 バイトを読み取り、符号付き 32 ビット浮動小数点値として解釈します。 DataView.prototype.getFloat64()-
この
DataViewの指定されたバイトオフセットから始まる 8 バイトを読み取り、符号付き 64 ビット浮動小数点値として解釈します。 DataView.prototype.getInt16()-
この
DataViewの指定されたバイトオフセットから始まる 2 バイトを読み取り、符号付き 16 ビット整数値として解釈します。 DataView.prototype.getInt32()-
この
DataViewの指定されたバイトオフセットから始まる 4 バイトを読み取り、符号付き 32 ビット整数値として解釈します。 DataView.prototype.getInt8()-
この
DataViewの指定されたバイトオフセットから始まる 1 バイトを読み取り、符号付き 8 ビット整数値として解釈します。 DataView.prototype.getUint16()-
この
DataViewの指定されたバイトオフセットから始まる 2 バイトを読み取り、符号なし 16 ビット整数値として解釈します。 DataView.prototype.getUint32()-
この
DataViewの指定されたバイトオフセットから始まる 4 バイトを読み取り、符号なし 32 ビット整数値として解釈します。 DataView.prototype.getUint8()-
この
DataViewの指定されたバイトオフセットから始まる 1 バイトを読み取り、符号なし 8 ビット整数値として解釈します。 DataView.prototype.setBigInt64()-
長整数を受け取り、符号付き 64 ビット整数値として、この
DataViewの指定されたバイトオフセットから始まる 8 バイトに格納します。 DataView.prototype.setBigUint64()-
長整数を受け取り、符号なし 64 ビット整数値として、この
DataViewの指定されたバイトオフセットから始まる 8 バイトに格納します。 DataView.prototype.setFloat16()-
数値を受け取り、16 ビット浮動小数点値として、この
DataViewの指定されたバイトオフセットから始まる 2 バイトに格納します。 DataView.prototype.setFloat32()-
数値を受け取り、32 ビット浮動小数点値として、この
DataViewの指定されたバイトオフセットから始まる 4 バイトに格納します。 DataView.prototype.setFloat64()-
数値を受け取り、64 ビット浮動小数点値として、この
DataViewの指定されたバイトオフセットから始まる 8 バイトに格納します。 DataView.prototype.setInt16()-
数値を受け取り、符号付き 16 ビット整数値として、この
DataViewの指定されたバイトオフセットから始まる 2 バイトに格納します。 DataView.prototype.setInt32()-
数値を受け取り、符号付き 32 ビット整数値として、この
DataViewの指定されたバイトオフセットから始まる 4 バイトに格納します。 DataView.prototype.setInt8()-
数値を受け取り、符号付き 8 ビット整数値として、この
DataViewの指定されたバイトオフセットから始まる 1 バイトに格納します。 DataView.prototype.setUint16()-
数値を受け取り、符号なし 16 ビット整数値として、この
DataViewの指定されたバイトオフセットから始まる 2 バイトに格納します。 DataView.prototype.setUint32()-
数値を受け取り、符号なし 32 ビット整数値として、この
DataViewの指定されたバイトオフセットから始まる 4 バイトに格納します。 DataView.prototype.setUint8()-
数値を受け取り、符号なし 8 ビット整数値として、この
DataViewの指定されたバイトオフセットから始まる 1 バイトに格納します。
例
>DataView の使用
const buffer = new ArrayBuffer(16);
const view = new DataView(buffer, 0);
view.setInt16(1, 42);
view.getInt16(1); // 42
仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-dataview-objects> |