Buffer、ArrayBuffer、ArrayBufferView 三者是什么关系?如何构建及互相转换?
时间: 2023-12-10 18:03:19 浏览: 34
Buffer、ArrayBuffer、ArrayBufferView 是 JavaScript 中用于处理二进制数据的对象。
Buffer 是 Node.js 中的二进制数据处理对象,而 ArrayBuffer 和 ArrayBufferView 是浏览器中的二进制数据处理对象。
ArrayBuffer 是一种固定长度的二进制数据缓冲区,它不能直接被操作。而 ArrayBufferView 是基于 ArrayBuffer 的视图,可以操作 ArrayBuffer 中的数据。
在 JavaScript 中,可以通过以下方式创建 ArrayBuffer:
```
let buffer = new ArrayBuffer(length);
```
其中,length 表示缓冲区的大小。
可以通过以下方式创建 ArrayBufferView:
```
let view = new DataView(buffer, byteOffset, byteLength);
```
其中,buffer 表示需要操作的 ArrayBuffer 对象,byteOffset 表示视图在 ArrayBuffer 中的起始位置,byteLength 表示视图的长度。
ArrayBufferView 可以被转换为 ArrayBuffer,方法如下:
```
let buffer = view.buffer;
```
ArrayBuffer 也可以被转换为 ArrayBufferView,方法如下:
```
let view = new DataView(buffer);
```
在转换的过程中,需要注意 ArrayBufferView 的字节长度必须是 ArrayBuffer 字节长度的整数倍,否则会抛出异常。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)