TypedArray.prototype.length
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月.
length は TypedArray インスタンスのアクセサープロパティで、型付き配列の長さを(要素数で)返します。
試してみましょう
// ArrayBuffer をバイト単位のサイズで作成
const buffer = new ArrayBuffer(8);
const uint8 = new Uint8Array(buffer, 2);
console.log(uint8.length);
// 予想される結果: 6
解説
length プロパティは set アクセサープロパティが undefined であるアクセサープロパティです。これは、このプロパティが読み取り専用であることを意味します。型付き配列が長さ追跡の場合、その長さは基盤となるバッファーの長さに依存し、バッファのサイズ変更時に変化することがあります。そうでない場合、値は型付き配列が構築された時点で確定し、変更できません。長さ追跡の有無にかかわらず、基盤となるバッファーのサイズ変更により表示範囲が有効できなくなった場合、length は 0 になります。
例
>length プロパティの使用
js
const buffer = new ArrayBuffer(8);
const uint8 = new Uint8Array(buffer);
uint8.length; // 8 (バッファーの長さと一致)
const uint8newLength = new Uint8Array(buffer, 1, 5);
uint8newLength.length; // 5 (Uint8Array の構築の際に指定された通り)
const uint8offset = new Uint8Array(buffer, 2);
uint8.length; // 6 (構築された Uint8Array のオフセットによる)
const buffer2 = new ArrayBuffer(16, { maxByteLength: 32 });
const uint8lengthTracking = new Uint8Array(buffer2, 4);
uint8lengthTracking.length; // 12 (16 - 4)
buffer2.resize(20);
uint8lengthTracking.length; // 16 (20 - 4)
buffer2.resize(3);
uint8lengthTracking.length; // 0 (ビュー範囲が有効ではなくなった)
仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-get-%typedarray%.prototype.length> |