Tag: 类型数组

JavaScript中Typed Arrays的优点是它们在C中的工作方式相同或相似吗?

我一直在使用JavaScript中的Typed Arrays 。 var buffer = new ArrayBuffer(16); var int32View = new Int32Array(buffer); 我认为JavaScript中的正常数组( [1, 257, true])性能较差,因为它们的值可能是任何类型,因此,在内存中达到偏移并非易事。 我原本以为JavaScript数组下标的工作方式与对象相同(因为它们有许多相似之处),并且基于哈希映射 ,需要基于散列的查找。 但我没有找到太多可信的信息来证实这一点。 所以,我假设Typed Arrays表现如此出色的原因是因为它们像C中的普通数组一样工作,它们总是被输入。 鉴于上面的初始代码示例,并希望获得键入数组中的第10个值… var value = int32View[10]; 类型为Int32 ,因此每个值必须由32位或4个字节组成。 下标是10 。 因此,该值在内存中的位置是 + (4 * 10) ,然后读取4个字节以获得总值。 我基本上只想确认我的假设。 我的想法是否正确,如果没有,请详细说明。 我检查了V8源代码 ,看看我是否可以自己回答,但我的C生锈了,我对C ++不太熟悉。