← 返回首页
TypedArray.prototype.length - JavaScript | MDN

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

View in English Always switch to English

TypedArray.prototype.length

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。

lengthTypedArray インスタンスのアクセサープロパティで、型付き配列の長さを(要素数で)返します。

目次

試してみましょう

// 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 (ビュー範囲が有効ではなくなった)

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-get-%typedarray%.prototype.length

ブラウザーの互換性

ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。

関連情報