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月.
byteOffset は DataView インスタンスのアクセサープロパティで、このビューの 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> |