JavaScript/Uint8Array
Uint8Array
編集概要
編集Uint8Array は、8ビットの符号なし整数(uint8)の型付き配列を表すJavaScriptオブジェクトです。各要素は 8 ビットの符号なし整数としてアクセス可能で、効率的に数値データを操作することができます。この配列は、基盤となる ArrayBuffer 上で動作します。
コンストラクタ
編集Uint8Array()
編集new Uint8Array(buffer [, byteOffset [, length]]) new Uint8Array(length) new Uint8Array(typedArray) new Uint8Array(iterable)
- 引数
- buffer: ArrayBuffer または SharedArrayBuffer
- byteOffset (オプション): バイト単位でのオフセット位置(デフォルトは 0)
- length (オプション): 配列の要素数
- length (数値): 配列の要素数を指定する
- typedArray: 既存の型付き配列を基にする
- iterable: 配列や反復可能オブジェクト(Map や Set など)
- 戻り値: 指定された条件に基づく新しい Uint8Array
プロパティ
編集Uint8Array.BYTES_PER_ELEMENT
編集- 各要素のバイト長(固定値: 1)
Uint8Array.prototype.length
編集- 配列内の要素数を返す(読み取り専用)
Uint8Array.prototype.buffer
編集- 基盤となる ArrayBuffer を返す
Uint8Array.prototype.byteOffset
編集- ArrayBuffer 内の先頭位置をバイト単位で返す
Uint8Array.prototype.byteLength
編集- バッファの全体のバイト長を返す
メソッド
編集Uint8Array.prototype.set()
編集uint8Array.set(array [, offset])
- 引数
- array: コピー元の配列(型付き配列または通常の配列)
- offset (オプション): 書き込みの開始インデックス(デフォルトは 0)
- 戻り値: なし
- 説明: 指定された配列から要素をコピーして設定する
Uint8Array.prototype.subarray()
編集uint8Array.subarray(begin [, end])
- 引数
- begin: 開始インデックス
- end (オプション): 終了インデックス(デフォルトは配列の終端)
- 戻り値: 元の配列の部分範囲を共有する新しい Uint8Array
使用例
編集// Uint8Arrayの作成 const buffer = new ArrayBuffer(16); const uint8Array = new Uint8Array(buffer); // 配列の要素を設定 uint8Array[0] = 255; // 最大値 uint8Array[1] = 128; console.log(uint8Array[0]); // 255 console.log(uint8Array[1]); // 128 // 配列のコピー const subArray = uint8Array.subarray(0, 1); console.log(subArray[0]); // 255
注意点
編集- Uint8Array は 8 ビットの符号なし整数のみを扱い、他の型の値を代入しようとするとエラーになる
- バッファのバイト長は Uint8Array.BYTES_PER_ELEMENT(1バイト)の倍数である必要がある
- 符号なし整数の範囲は 0 から 255 まで
関連オブジェクト
編集- JavaScript/Uint16Array
- JavaScript/Uint32Array
- JavaScript/TypedArray
- JavaScript/ArrayBuffer
- JavaScript/DataView
ブラウザサポート
編集- Chrome 4+
- Firefox 3.5+
- Safari 4+
- Edge 12+
仕様
編集- ECMAScript 2015 (ES6)