我最近刚开始使用webgl
,我正在尝试了解Uint8Array, Uint16Array, Uin32Array.
与您如何使用它们之间的区别。我在这里找到了一些有关它的信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array但是有人能告诉我它们之间的区别以及如何使用它们吗?
答案 0 :(得分:2)
Uint *** Arrays构造非类型数组(由@zfor注释,因此,例如,push
将为undefined
)仅包含数字(仍为字节)。不同之处在于每个构造函数数组在内存中具有不同的字节范围。 Uint8Array
只有1个字节,然后数字的限制为255
。 Uint16Array
长度为2个字节,然后限制为65535
。 Uint32Array
长度为4个字节,因此限制为4294967295
。
构造Uint * Array时,将数组长度声明为第一个参数:
var arr = new Uint8Array(1);
如果你声明一个数组/缓冲区/对象,构造函数仍然将它们作为Uint*Array
处理。
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