类型化数组和 ArrayBuffer


类型化数组就是类数组对象,它和常规数组有以下区别:

  • 类型化数组中的元素都是数字
  • 类型化数组有固定的长度
  • 在创建类型化数组的时候,数组中的元素总是默认初始化为0

总共有8种类型化数组:

类型化数组是用于 <canvas> 元素的 WebGL 3D 图形化 API 中重要的一部分,浏览器已经将它们实现为 WebGL 的一部分。

// 初始化
var bytes = new Uint8Array(1024); // 1KB
for (var i = 0; i < bytes.length; i++) {
    bytes[i] = i & 0xFF;
}
var copy = new Uint8Array(bytes);
var ints = new Int32Array([1, 2, 3, 4]);
    
// set 方法将常规数组复制到类型化数组中
bytes = new Uint8Array(1024);
var pattern = new Uint8Array([0, 1, 2, 3]);
bytes.set(pattern);
bytes.set(pattern, 4);
bytes.set([0, 1, 2, 3], 8);
    
// 返回部分内容
ints = new Int16Array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
var last3 = ints.subarray(ints.length -3, ints.length);  // 最后三个

类型化数组是基于字节块的视图,称为「ArrayBuffer」,每个类型化数组都有与基本缓冲区相关的三个属性:


点赞 取消点赞 收藏 取消收藏

<< 上一篇: Web Worker

>> 下一篇: Blob