JavaScript - DataView
DataView 是 JavaScript 中的一个对象,它允许你操作存储在 ArrayBuffer 中的二进制数据。它提供了一个低级接口,用于在二进制 ArrayBuffer 中读写数字类型。
DataView 对象提供了内置方法,用于从缓冲区中读取和写入 1、2 和 4 字节的有符号和无符号整数,以及 4 和 8 字节的浮点数。
ArrayBuffer 是一个字节数组,通常在其他语言中被称为“字节数组”。你不能像操作普通数组那样直接操作 ArrayBuffer 的数据。使用 ArrayBuffer,你可以创建一个 DataView 对象,该对象以特定格式表示缓冲区。你可以使用 DataView 对象来读取和写入缓冲区的内容。
语法
以下是在 JavaScript 中创建 DataView 对象的语法 −
new DataView(buffer, byteOffset, byteLength)
在这里,buffer 是一个现有的用于存储的 ArrayBuffer。byteOffset 参数(可选)表示缓冲区中第一个字节的字节偏移量,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 − 返回 ArrayBuffer 或 SharedArrayBuffer。
- byteLength − 返回此视图的长度(以字节为单位)。
- byteOffset − 返回此视图相对于其 ArrayBuffer 或 SharedArrayBuffer 开头的偏移量(以字节为单位)。
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。 |