Javascript将Uint8Array [x]分配给新的var:type?

时间:2015-03-03 13:05:50

标签: javascript arrays type-conversion

如果我有以下代码:

var uInt8Array = new Uint8Array([0, 1, 2]);
var number = uInt8Array[1];

将数字解析为64位浮点数还是保留8位无符号整数?

1 个答案:

答案 0 :(得分:1)

Uint8Array数据类型的存在是为了在某些特定情况下保存内存。在处理单个元素时,内存节省相当不重要,但在处理大型数组时变得非常重要,因为每个元素将占用通常的内存的1/8。

重要的例子是处理媒体,即音频,图像和视频。

1百万像素图像将存储为4百万个元素,每个元素为8位。 r,g,b和a各为8位。这当然会消耗4,000,000个字节。如果此数据类型不存在且图像仍存储在具有4个元素的数组中,则此内存要求将膨胀为32,000,000字节。

您可以通过编写简单的测试代码并将监视放在变量上来自行测试。初始数组显示为Uint8Array,而从中提取的元素显示为标准数字对象。

这里是您提供的代码和观察窗口中的变量的屏幕截图。 enter image description here