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