DataView

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容