2016-08-02 7 views
0

私は最近webglを使用し始めました。Uint8Array, Uint16Array, Uin32Array.とその使い方の違いを理解しようとしています。私はそれについていくつかの情報をここに見つけました:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array誰でも私にそれらの違いとあなたがそれらを使う方法を教えてもらえますか?Uint8Array、Uint16Array、Uin32Arrayの使い方

答えて

0

Uint ***配列は、型付きでない配列(@zforによってコメントされています。したがって、pushundefinedとなります)は数字のみ(静止バイト)です。違いは、各コンストラクタ配列のメモリ内のバイト範囲が異なることです。 Uint8Arrayが1バイトのみの場合、数値の上限は255です。​​の長さが2バイトの場合、制限は65535です。 Uint32Arrayの長さは4バイトなので、制限は4294967295です。あなたの代わりに、配列/バッファ/オブジェクトを宣言した場合

var arr = new Uint8Array(1); 

を、コンストラクタはまだUint*Arrayとしてそれらをproccess:あなたが最初の引数として配列の長さを宣言UINT *アレイを構築

。今

var arr = new Uint8Array([10, 257]); 
console.log(arr[0]); // 10 
console.log(arr[1]); // 1 (same thing: 257 % 256) 

、いくつかの例を参照してください。

arr[0] = 256; 
console.log(arr[0]); // 0 

arr[0] = 255; 
console.log(arr[0]); // 255 
+1

と配列を入力したが、通常の配列と混同しないようにしています。型付き配列で 'Array.isArray()'を呼び出すと、falseが返されます。型付き配列は、通常の配列に存在するいくつかの関数もサポートしていません。例: 'push();ポップ();シフト(); unshift(); '彼らは' TypedArray.prototype'から継承します – zfor

+0

@zforありがとう。私はそれについて知らなかった。 – Hydro

関連する問題