JavaScript DataView 怎么用?如何读写二进制数据?

文章导读
Previous Quiz Next DataView 是 JavaScript 中的一个对象,它允许你操作存储在 ArrayBuffer 中的二进制数据。它提供了一个低级接口,用于在二进制 ArrayBuffer 中读写数字类型。
📋 目录
  1. 语法
  2. 示例:创建 DataView 对象
  3. JavaScript DataView 属性
  4. JavaScript DataView 方法
A A

JavaScript - DataView



Previous
Quiz
Next

DataView 是 JavaScript 中的一个对象,它允许你操作存储在 ArrayBuffer 中的二进制数据。它提供了一个低级接口,用于在二进制 ArrayBuffer 中读写数字类型。

DataView 对象提供了内置方法,用于从缓冲区中读取和写入 1、2 和 4 字节的有符号和无符号整数,以及 4 和 8 字节的浮点数。

ArrayBuffer 是一个字节数组,通常在其他语言中被称为“字节数组”。你不能像操作普通数组那样直接操作 ArrayBuffer 的数据。使用 ArrayBuffer,你可以创建一个 DataView 对象,该对象以特定格式表示缓冲区。你可以使用 DataView 对象来读取和写入缓冲区的内容。

语法

以下是在 JavaScript 中创建 DataView 对象的语法 −

new DataView(buffer, byteOffset, byteLength)

在这里,buffer 是一个现有的用于存储的 ArrayBufferbyteOffset 参数(可选)表示缓冲区中第一个字节的字节偏移量,byteLength 参数(同样可选)表示字节数组中的元素数量。

示例:创建 DataView 对象

以下示例演示了如何在 JavaScript 中创建 DataView 对象。

<html>
<body>
<script>
   const buffer = new ArrayBuffer(16);
   // 创建 dataview 对象
   const data_view = new DataView(buffer);
   document.write("The type of data_view is: " + typeof(data_view));
</script>
</body>
</html>

输出

上述程序将显示 data_view 的类型为 −

The type of data_view is: object

JavaScript DataView 属性

以下是 DataView 对象的属性列表 −

  • buffer − 返回 ArrayBufferSharedArrayBuffer
  • byteLength − 返回此视图的长度(以字节为单位)。
  • byteOffset − 返回此视图相对于其 ArrayBufferSharedArrayBuffer 开头的偏移量(以字节为单位)。

JavaScript DataView 方法

以下是 JavaScript DataView 对象的方法 −

Sr.No. 方法与描述
1

getBigInt64()

返回范围从 -263 到 263-1(包含)的 BigInt。

2

getBigUint64()

返回范围从 0 到 264-1(包含)的 BigInt。

3

getFloat32()

返回范围从 -3.4e38 到 3.4e38 的浮点数。

4

getFloat64()

返回任意数值。

5

getInt16()

返回范围从 -32768 到 32767(包含)的整数。

6

getInt32()

返回范围从 -2147483648 到 2147483647(包含)的整数。

7

getInt8()

返回范围从 -128 到 127(包含)的整数。

8

getUint16()

返回范围从 0 到 65535(包含)的整数。

9

getUint32()

返回范围从 0 到 4294967295(包含)的整数。

10

getUint8()

返回范围从 0 到 255(包含)的整数。

11

setBigInt64()

返回 undefined。

12

setBigUint64()

返回 undefined。

13

setFloat32()

返回 undefined。

14

setFloat64()

返回 undefined。

15

setInt16()

返回 undefined。

16

setInt32()

返回 undefined。

17

setInt8()

返回 undefined。

18

setUint16()

返回 undefined。

19

setUint32()

返回 undefined。

20

setUint8()

返回 undefined。