了解 JavaScript 中类型化数组的概念
Understanding the concept of typed arrays in JavaScript
我想知道JavaScript中的类型数组是什么(例如 Int16Array
、Uint32Array
、Uint8ClampedArray
等(。 我是这个字节级概念的新手,因为我真的不明白在说什么。 例如,如果你看看这篇文章,当它谈到 32 位操作时,我就迷路了......
https://hacks.mozilla.org/2011/12/faster-canvas-pixel-manipulation-with-typed-arrays/
一个字符在 JavaScript 中是两个字节,我知道类型数组只是一个存储字节的缓冲区(?(,然后像上面这三个这样的数据视图用于根据它们的类型以某种方式读取/修改字节信息。 但是,我无法理解如何使用它们或它们与"普通"数组相比有什么好处。 有人可以解释类型化数组的用例和好处吗?
类型化数组通常用于与外部世界接口时,其中数据以特定的非JavaScript形式出现,并且您希望通过javascript访问该数据。 类型数组用于创建数据缓冲区的特定视图。 缓冲区是原始数据,视图是读取/解释/访问该数据的方法。
如果你没有与外界接口,也没有尝试处理在javascript之外创建的数据或发送到javascript之外的代理的数据,那么通常只使用普通的javascript数组,而不使用缓冲区和类型化数组。
这就是您询问的类型:
Int16Array: An array of 16-bit integers (signed) - 2 bytes per entry
Uint8Array: An array of 8-bit unsigned integers - 1 byte per entry
Uint32Array: An array of 32-bit unsigned integers - 4 bytes per entry
您可以在此处查看所有类型化数组的列表:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays
当一个变量被typed
时,这意味着该变量有一个非常特定的类型,并且只有那个类型。 类型可能是字符串、16 位有符号整数、浮点数等...... 在javascript中,变量可以保存任何类型的数据,因此它不是专门类型的。 在其他语言(如 C(中,变量通常预先声明为保存特定类型,并且(不使用特定覆盖(不能将不同类型的数据分配给该变量。
在不打算开始争论各种语言功能的可取性的情况下,通常认为用类型化语言编程更安全,并且执行引擎也许可以更快地操作数据,但非类型或弱类型语言有时可以更灵活 - 使做一些事情更简单或更干净。
- Javascript-将类型化数组保存为blob,并作为二进制数据读回
- 在Node.js中用.bin文件内容填充一个类型化数组
- 将非类型化数组编译为 C 的有效方法是什么?
- 如何使用类型化数组来模拟对象
- 编辑类型化数组中的值
- 了解 JavaScript 中类型化数组的概念
- 如何检查是否支持 javascript 类型化数组
- 用于在javascript中存储对象的类型化数组
- 在Javascript中将字符串转换为类型化数组
- 数组缓冲区IE10-类型化的数组构造函数参数无效
- 正在类型化数组中移动数据
- 不能给类型化数组缓冲区赋值
- 检测对象是否为Array或类型化数组
- 从类型化数组更新svg路径
- 如何在JavaScript类型化数组中使用字符串
- 类型化数组vs数组用例
- 是否有可能在JavaScript中使用类型化数组从4x Uint8转换为Uint32 ?
- 为什么类型化数组构造函数要求offset为基础类型大小的数倍
- 如何检查变量是否是javascript中的类型化数组
- 有没有一种方法可以将类型化数组设置为零