//arraybuffer缓冲区 let buffer = new ArrayBuffer(8); //以int8Array类型解析缓冲区,即以每8位作为一个单位,每个单位用8位二进制有符号整数解析 let int8Array1 = new Int8Array(buffer); //输出字节长度8,这个字节长度不会随着解析类型不同而变化 console.log(int8Array2.byteLength); //以30的有符号整数的二进制(即二进制序列:00011110)填充缓冲区的前8位 int8Array1[0] = 30; //int8Array2解析同样的缓冲区 let int8Array2 = new Int8Array(buffer); // 输出30 说明缓冲区已经被int8Array1修改 console.log(int8Array2[0]);
使用“DataView 对象”
◎ DataView 通过一系列 get 和 set 方法(set 和 get 后接类型数组对象的类型名,如 setUint8)读取或写入缓冲区。 基础用法如下:
1 2 3 4 5 6 7 8 9 10
//arraybuffer缓冲区 let buffer = new ArrayBuffer(8); //以DataView解析缓冲区 let bufferReader = new DataView(buffer); //输出字节长度8,这个字节长度不会随着解析类型不同而变化 console.log(bufferReader.byteLength); //以30的有符号整数的二进制(即二进制序列:00011110)填充缓冲区的前8位 bufferReader.setInt8(0, 30); // 输出30 缓冲区已经被bufferReader修改 console.log(bufferReader.getInt8(0));