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

View in English Always switch to English

DataView.prototype.byteLength

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

byteLengthDataView インスタンスのアクセサープロパティで、このビューの長さを(バイト単位で)返します。

試してみましょう

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

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

console.log(view1.byteLength + view2.byteLength); // 16 + 4
// 予想される結果: 20

解説

byteLengthプロパティはアクセサープロパティであり、その設定アクセサー関数は undefined であるため、このプロパティは読み取り専用です。DataView長さ追跡 である場合、その長さは基盤となるバッファーの長さに依存し、バッファのサイズ変更時に変更されることがあります。そうでない場合、値は DataView の構築時に確定され、変更できません。長さ追跡の有無にかかわらず、基盤となるバッファーのサイズ変更により表示範囲ができなくなった場合、byteLength は 0 になります。

byteLength プロパティの使用

js
const buffer = new ArrayBuffer(8);
const dataview = new DataView(buffer);
dataview.byteLength; // 8 (バッファーの byteLength に一致)

const dataview2 = new DataView(buffer, 1, 5);
dataview2.byteLength; // 5 (DataView を構築する際に指定)

const dataview3 = new DataView(buffer, 2);
dataview3.byteLength; // 6 (構築された DataView のオフセットによる)

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

仕様書

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

ブラウザーの互換性

関連情報