【问题标题】:Javascript assigning Uint8Array[x] to new var: type?Javascript 将 Uint8Array[x] 分配给新的 var: 类型?
【发布时间】:2015-03-03 13:05:49
【问题描述】:

如果我有以下代码:

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

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

【问题讨论】:

  • 除非我弄错了,否则答案是“不——两者都不是”。它只是 JS 一般用于数字的东西——一个 64 位浮点数。在此处查看更多信息:w3schools.com/js/js_numbers.asp
  • 当然;我纠正了我的问题。如果您确定它会被解析,请随时将其放在答案中:)

标签: javascript arrays type-conversion


【解决方案1】:

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

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

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

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

这是您提供的代码和监视窗口中的变量的屏幕截图。

【讨论】:

    猜你喜欢
    • 2020-03-20
    • 2019-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 2017-03-07
    • 2019-01-27
    • 2020-08-25
    相关资源
    最近更新 更多