このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

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 を参照してください。

js
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 の使用

js
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

ブラウザーの互換性

関連情報