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

标签 javascript arrays type-conversion

如果我有以下代码:

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

数字会被解析为 64 位 float 还是保留 8 位无符号整数?

最佳答案

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

处理媒体(即音频、图像和视频)时,这一点变得很重要。

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

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

这是您提供的代码和监 window 口中的变量的屏幕截图。 enter image description here

关于Javascript 将 Uint8Array[x] 分配给新的 var : type?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28832585/

相关文章:

java - 回复 : Convert Double to byte[] array

带有预先输入和分层项目的 Javascript 组合框

php array_merge 没有删除值?

c++ - 尝试舍入数字时如何避免精度损失? (C++)

ios - 如何将数据保存到模型coredata

jquery - 如何使用数组索引对无序列表进行排序

python - 在Python中将字符串转换为int,只有没有字符的数字

javascript - 如何设置 redux-tooltip 的样式?

javascript - 将背景滑入和滑出 View

javascript - 包含一个 WAV 文件和一个 WAV 文件 : what's the difference and how to convert to each other? 的 Blob