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

View in English Always switch to English

DataView.prototype.byteOffset

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月.

byteOffsetDataView インスタンスのアクセサープロパティで、このビューの ArrayBuffer または SharedArrayBuffer の先頭からオフセットを表します。

試してみましょう

// ArrayBuffer をバイト単位のサイズで作成
const buffer = new ArrayBuffer(16);

const view = new DataView(buffer, 12, 4); // 12 バイト目から続く 4 バイト

console.log(view.byteOffset);
// 予想される結果: 12

解説

byteOffsetプロパティはアクセサープロパティであり、その設定アクセサー関数 は undefined であるため、このプロパティは読み取り専用です。値は DataView が構築された時点で設定され、変更することはできません。ただし、基盤となるバッファーのサイズが変更され、ビュー範囲が有効でなくなった場合、byteOffset は 0 になります。

byteOffset プロパティの使用

js
const buffer = new ArrayBuffer(8);
const dataview = new DataView(buffer);
dataview.byteOffset; // 0 (オフセットの指定なし)

const dataview2 = new DataView(buffer, 3);
dataview2.byteOffset; // 3 (DataView を構築した際に指定された通り)

const buffer2 = new ArrayBuffer(16, { maxByteLength: 32 });
const dataviewLengthTracking = new DataView(buffer2, 4);
dataviewLengthTracking.byteOffset; // 4
buffer2.resize(3);
dataviewLengthTracking.byteOffset; // 0 (ビュー範囲が有効ではなくなった)

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-get-dataview.prototype.byteoffset

ブラウザーの互換性

関連情報