A) 缓冲(ArrayBuffer)和视图
JavaScript类型化数组将实现拆分为缓冲和视图两部分。一个缓冲(ArrayBuffer)描述的是内存中的一段二进制数据,缓冲没有格式可言,并且不提供机制访问其内容。为了访问在缓存对象中包含的内存,你需要使用视图。视图可以将二进制数据转换为实际有类型的数组。一个缓冲可以提供给多个视图进行读取,不同类型的视图读取的内存长度不同,读取出来的数据格式也不同。
- ArrayBuffer是一个构造函数,可以分配一段可以存放数据的连续内存区域。
- js中一个数字就是一个字节,1字节(Byte)= 8比特(bit),1比特就是一个二进制位(0或者1)
// 创建一个8字节长度的缓冲
// 生成8个字节的内存区域,一共有 8*8=64 比特,每一个二进制位都是0。
let buffer = new ArrayBuffer(8);
// 创建一个视图。此视图把缓冲内的数据格式化为一个8位(8字节)有符号整数数组
let viewOne = new Int8Array(buffer)
// 创建一个视图。此视图把缓冲内的数据格式化为一个16位(4字节)有符号整数数组
let viewTwo = new Int16Array(buffer)