【JSリファレンス】TypedArrayコンストラクター
更新日:2024/06/14
TypedArrayコンストラクターは、ArrayBufferまたはSharedArrayBufferで確保したメモリ領域を特定のバイト数単位で区切り、配列形式でアクセスするビューオブジェクトを生成します。
TypedArrayコンストラクターは総称です。
区切るバイト数や符号の取り扱いなどにより、次のコンストラクター名に置き換えられます。
コンストラクター名 | バイト数 | 型 | 範囲 |
---|---|---|---|
Int8Array | 1 | 8ビット2の補数符号付き整数 | -128~127 |
Uint8Array | 1 | 8ビット符号なし整数 | 0~255 |
Uint8ClampedArray | 1 | 8ビット符号なし整数(クランプ変換) | 0~255 |
Int16Array | 2 | 16ビット2の補数符号付き整数 | -32768~32767 |
Uint16Array | 2 | 16ビット符号なし整数 | 0~65535 |
Int32Array | 4 | 32ビット2の補数符号付き整数 | -2147483648~ 2147483647 |
Uint32Array | 4 | 32ビット符号なし整数 | 0~4294967295 |
BigInt64Array | 8 | 64ビット2の補数符号付き整数 | -9223372036854775808~ 9223372036854775807 |
BigUint64Array | 8 | 64ビット符号なし整数 | 0~18446744073709551615 |
Float32Array | 4 | 32ビットIEEE浮動小数点 | |
Float64Array | 8 | 64ビットIEEE浮動小数点 |
BigInt系以外のTypedArrayは、BigInt型を受け付けることができません。
BigInt系のTypedArrayは、BigInt型のみ受け付けます。
プロパティやメソッドについては、上表のリンク先を確認してください。
■値セット時のバイト値変換
float型を除いて、セットする値に小数が含まれる場合は、小数点以下が切り捨てられます。
次にセットする値で必要なバイト数が各TypeArrayのバイト数より多い場合、上位バイトが切り捨てられます。
実際の値は、2のビット数乗で割った値になります。
例(8ビット):
1000 → 1000 % 2 ** 8 → 232 → 0xE8
割った値がマイナスの場合、正の値の補数(足して桁溢れを除いて0になる値)を求めます
例(8ビット):
-1000 → -1000 % 2 ** 8 → -232 → 0x18 ( 0xE8 の補数: 0xE8 + 0x18 = 0x100 )
なお、符号あり無しに関わらず、ビットが同じなら同じ値がセットされます。
■内部で使用されるTypedArrayコンストラクター
一部を除き、各TypedArrayコンストラクターのプロパティやメソッドは個々に定義されているのではなく、同一のオブジェクトに属するプロパティやメソッドを参照しています。
詳しくは%TypedArray%コンストラクターおよび%TypedArray%.prototypeオブジェクトを参照してください。
更新日:2024/06/14
スポンサーリンク
記事の内容について

こんにちはけーちゃんです。
説明するのって難しいですね。
「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。
裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。
掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。
ご意見、ご指摘はこちら。
https://jsref.affi-sapo-sv.com/info.php
このサイトは、リンクフリーです。大歓迎です。