DataView

作者: wsgdiv | 来源:发表于2021-06-10 17:00 被阅读0次

DataView 视图是一个可以从 二进制ArrayBuffer 对象中读写多种数值类型的底层接口,使用它时,不用考虑不同平台的字节序问题。

// create an ArrayBuffer with a size in bytes
const buffer = new ArrayBuffer(16);

// Create a couple of views
const view1 = new DataView(buffer);
const view2 = new DataView(buffer, 12, 4); //from byte 12 for the next 4 bytes
view1.setInt8(12, 42); // put 42 in slot 12

console.log(view2.getInt8(0));
// expected output: 42

参数

buffer
一个 已经存在的ArrayBuffer 或 SharedArrayBuffer 对象
byteOffset 可选
字节偏移,如果未指定,则默认从第一个字节开始。
byteLength 可选
字节长度。如果未指定,这个视图的长度将匹配buffer的长度。

属性

DataView.prototype.constructor
指定用来生成原型的构造函数.初始化值是标准内置DataView构造器.

DataView.prototype.buffer 只读
被视图引入的ArrayBuffer.创建实例的时候已固化因此是只读的.

DataView.prototype.byteLength 只读
从 ArrayBuffer中读取的字节长度. 创建实例的时候已固化因此是只读的.

DataView.prototype.byteOffset 只读
从 ArrayBuffer读取时的偏移字节长度. 创建实例的时候已固化因此是只读的.

方法

DataView.prototype.getInt8()
从DataView起始位置以byte为计数的指定偏移量(byteOffset)处获取一个8-bit数(一个字节).

DataView.prototype.getUint8()
从DataView起始位置以byte为计数的指定偏移量(byteOffset)处获取一个8-bit数(无符号字节).

DataView.prototype.getInt16()
从DataView起始位置以byte为计数的指定偏移量(byteOffset)处获取一个16-bit数(短整型).

DataView.prototype.getUint16()
从DataView起始位置以byte为计数的指定偏移量(byteOffset)处获取一个16-bit数(无符号短整型).

DataView.prototype.getInt32()
从DataView起始位置以byte为计数的指定偏移量(byteOffset)处获取一个32-bit数(长整型).

DataView.prototype.getUint32()
从DataView起始位置以byte为计数的指定偏移量(byteOffset)处获取一个32-bit数(无符号长整型).

DataView.prototype.getFloat32()
从DataView起始位置以byte为计数的指定偏移量(byteOffset)处获取一个32-bit数(浮点型).

DataView.prototype.getFloat64()
从DataView起始位置以byte为计数的指定偏移量(byteOffset)处获取一个64-bit数(双精度浮点型).

DataView.prototype.setInt8()
从DataView起始位置以byte为计数的指定偏移量(byteOffset)处储存一个8-bit数(一个字节).

DataView.prototype.setUint8()
从DataView起始位置以byte为计数的指定偏移量(byteOffset)处储存一个8-bit数(无符号字节).

DataView.prototype.setInt16()
从DataView起始位置以byte为计数的指定偏移量(byteOffset)处储存一个16-bit数(短整型).

DataView.prototype.setUint16()
从DataView起始位置以byte为计数的指定偏移量(byteOffset)处储存一个16-bit数(无符号短整型).

DataView.prototype.setInt32()
从DataView起始位置以byte为计数的指定偏移量(byteOffset)处储存一个32-bit数(长整型).

DataView.prototype.setUint32()
从DataView起始位置以byte为计数的指定偏移量(byteOffset)处储存一个32-bit数(无符号长整型).

DataView.prototype.setFloat32()
从DataView起始位置以byte为计数的指定偏移量(byteOffset)处储存一个32-bit数(浮点型).

DataView.prototype.setFloat64()
从DataView起始位置以byte为计数的指定偏移量(byteOffset)处储存一个64-bit数(双精度浮点型).

var buffer = new ArrayBuffer(16);
var view = new DataView(buffer, 0);

view.setInt16(1, 42);
view.getInt16(1); // 42

参考链接:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/DataView

相关文章

网友评论

      本文标题:DataView

      本文链接:https://www.haomeiwen.com/subject/pijueltx.html