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

View in English Always switch to English

DataView.prototype.byteOffset

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。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 (ビュー範囲が有効ではなくなった)

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-get-dataview.prototype.byteoffset

ブラウザーの互換性

関連情報