如何使用Uint8Array,Uint16Array,Uin32Array

时间:2016-08-02 10:40:30

标签: javascript

我最近刚开始使用webgl,我正在尝试了解Uint8Array, Uint16Array, Uin32Array.与您如何使用它们之间的区别。我在这里找到了一些有关它的信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array但是有人能告诉我它们之间的区别以及如何使用它们吗?

1 个答案:

答案 0 :(得分:2)

Uint *** Arrays构造非类型数组(由@zfor注释,因此,例如,push将为undefined)仅包含数字(仍为字节)。不同之处在于每个构造函数数组在内存中具有不同的字节范围。 Uint8Array只有1个字节,然后数字的限制为255Uint16Array长度为2个字节,然后限制为65535Uint32Array长度为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