JavaScriptタイプ化配列リファレンスマニュアル

JavaScriptのタイプ化配列

JavaScriptでは、タイプ化配列はバイナリデータの配列に似たバッファです。

存在しないJavaScriptの属性またはオブジェクト「TypedArray」ですが、属性やメソッドはタイプ化配列オブジェクトと一緒に使用できます:

インスタンス

const myArr = new Int8Array(10);

自分で試してみてください

タイプ化配列のオブジェクト

オブジェクト データ型 範囲
Int8Array 有符号整数(字节) -128/127
Uint8Array 无符号整数(八位字节) 0/255
Uint8ClampedArray 无符号整数(八位字节) 0/255
Int16Array 短整数 -32768/32767
Uint16Array 无符号短整数 0/65535
Int32Array 有符号长整数 -231/231-1
Uint32Array 无符号长整数 0/232
Float32Array 浮点 - 7 位有效数字 1.2x10-38/3.4x1038
Float64Array 双精度浮点 - 16 位有效数字 5.0x10-324/1.8x10308
BigInt64Array 有符号大整数 -263/263-1
BigUint64Array 無符号大整数 0/264

説明

型定義配列は配列ではありません。

型定義配列上のisArray()はfalseを返します。

型定義配列は、pushやpopなどの多くの配列メソッドをサポートしていません。

型定義配列は、メモリ内に二進データを格納するための配列に似たオブジェクトです。

Typed Array メソッドと属性

方法 / 属性 説明
BYTES_PER_ELEMENT 要素ごとに格納するためのバイト数を計算する属性です。
fill() すべての要素に値を埋めます。
find() 条件を満たす最初の要素を返します。
name 型定義配列の名前を返します。
of() 配列を使用して型定義配列を作成します。
some() 要素が条件を満たす場合にtrueを返します。

Uint8ArrayとUint8ClampedArrayの比較

Uint8ArrayとUint8ClampedArrayの違いは、値の追加方法にあります。

Uint8ClampedArrayの要素を0-255の範囲外の値に設定すると、デフォルトで0または255になります。

型定義配列は、値の前 8 ビットのみを取得します。

型定義配列の利点

型定義配列は、Cで動作する配列のように二進データを処理する方法を提供します。

型定義配列は原始メモリであり、JavaScript はそれらを直接関数に渡すことができます。データを別の表現形式に変換する必要はありません。

型定義配列は通常の配列よりもはるかに速く、原始の二進データを使用できる関数(コンピュータゲーム、WebGL、Canvas、ファイル API、メディア API)にデータを渡すために使用されます。

ブラウザ API は型定義配列をサポートしています

Fetch API インスタンス

fetch(url)
.then(request => request.arrayBuffer())
.then(arrayBuffer =>...);

Canvas インスタンス

const canvas = document.getElementById('my_canvas');
const context = canvas.getContext('2d');
const imageData = context.getImageData(0, 0, canvas.width, canvas.height);
const uint8ClampedArray = imageData.data;

ブラウザサポート

typedArray ECMAScript6 (ES6) の機能です。

すべての現代ブラウザは ES6 (JavaScript 2015) をサポートしています。

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
はい はい はい はい はい

Internet Explorer 11(およびそれ以前のバージョン)はサポートしていません typedArray