Javascript中的Array对象大家都非常熟悉了,也应该知道Javascript中的Array可以同时存在不同类型的元素,比如像下面的代码是成立的:
var arr = ["你好", 1024, "abc", {"key":"key-1", "value":"value1"}];
console.log(arr);
这样的多种类元素数组用起来很方便
但是
某些情况下,比如网络传输,或者调用WebGL绘制3D对象时,则会降低效率,于是
类型化数组,应声出现
所谓类型化数组就是规定数组中的元素必须是同一种数据类型,而为了方便优化和使用,做了如下多种类型化数组
数组类型 | 每个元素所占字节数 | 描述(C语言中的数据类型) |
---|---|---|
Int8Array | 1 | 8位整型术 |
UInt8Array | 1 | 8位无符号整型 |
Int16Array | 2 | 16位整型数 |
UInt16Array | 2 | 16位无符号整型数 |
Int32Array | 4 | 32位整型数 |
UInt32Array | 4 | 32位无符号整型数 |
Float32Array | 4 | 32位单精度浮点数 |
Float64Array | 8 | 64位双精度浮点数 |
类型化数组的一些常用方法
方法、属性和常量 | 描述 |
get(index) | 获取第index个元素值 |
set(index, value) | 设置第index个元素值为value |
set(array, offset) | 从第offset个位置开始将array数组填充进去 |
length | 数组的长度 |
BYTES_PER_ELEMENT | 每个元素所占字节数 |
注意:类型化数组的创建方式只能使用 new 关键字创建,而不能使用中括号直接写[],后者创建的是普通的Javascript数组;
正确的创建方式是
var arr = new Float32Array([0.0, 0.5, 0.5, -0.5]);
console.log(arr);
或者可以指定长度,创建一个空的数组
var arr = new Float32Array(4);
console.log(arr);