DataView() コンストラクター

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

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

試してみましょう

// Create an ArrayBuffer with a size in bytes
const buffer = new ArrayBuffer(16);

// Create a couple of views
const view1 = new DataView(buffer);
const view2 = new DataView(buffer, 12, 4); // From byte 12 for the next 4 bytes
view1.setInt8(12, 42); // Put 42 in slot 12

console.log(view2.getInt8(0));
// Expected output: 42

構文

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

引数

buffer

既存の ArrayBuffer または SharedArrayBuffer で、新しい DataView オブジェクトの背景となるストレージとして使用されます。

byteOffset 省略可

新しいビューが参照するバッファーの最初のバイトまでのオフセットをバイト単位で指定します。指定されていない場合、バッファービューは最初のバイトから始まります。

byteLength 省略可

バイト配列の要素数です。指定しない場合、ビューの長さはバッファーの長さと一致します。

返値

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

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

例外

RangeError

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

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

DataView の使用

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

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

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-dataview-constructor

ブラウザーの互換性

関連情報