Get to know MDN better
此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
DataView 视图是一个可以从二进制 ArrayBuffer 对象中读写多种数值类型的底层接口,使用它时,不用考虑不同平台的字节序问题。
多字节的数字格式在内存中的表示方式因机器架构而异——相关的解释请参阅字节序。DataView 访问器(accessor)提供了对如何访问数据的明确控制,而不管执行代码的计算机的字节序如何。
某些浏览器不支持 DataView.prototype.setBigInt64() 和 DataView.prototype.setBigUint64()。因此,要在代码中启用跨浏览器的 64 位操作,你可以实现自己的 getUint64() 函数,以获得精度达到 Number.MAX_SAFE_INTEGER 的值——这对于某些情况足够使用。
或者,如果你需要完整的 64 位的范围,你可以创建 BigInt。此外,尽管原生 BigInt 比等效的用户态的库快得多,但由于其大小可变的性质,BigInt 始终比 JavaScript 中的 32 位整数要慢得多。
创建一个新的 DataView 对象。
[Symbol.toStringTag] 属性的初始值为字符串 "DataView"。该属性用于 Object.prototype.toString()。
DataView.prototype.bufferArrayBuffer 是引用该缓冲区的视图。在构造时会被固定,因此该属性只读。
DataView.prototype.byteLength视图的长度(以字节为单位)。在构造时会被固定,因此该属性只读。
DataView.prototype.byteOffset至 ArrayBuffer 的视图开始位置的字节偏移量。在构造时会被固定,因此该属性只读。
从当前 DataView 的指定字节偏移处读取 8 个字节,并将其解释为 64 位有符号整数。
DataView.prototype.getBigUint64()从当前 DataView 的指定字节偏移处读取 8 个字节,并将其解释为 64 位无符号整数。
DataView.prototype.getFloat16()从当前 DataView 的指定字节偏移处读取 2 个字节,并将其解释为 16 位浮点数。
DataView.prototype.getFloat32()从当前 DataView 的指定字节偏移处读取 4 个字节,并将其解释为 32 位浮点数。
DataView.prototype.getFloat64()从当前 DataView 的指定字节偏移处读取 8 个字节,并将其解释为 64 位浮点数。
DataView.prototype.getInt16()从当前 DataView 的指定字节偏移处读取 2 个字节,并将其解释为 16 位有符号整数。
DataView.prototype.getInt32()从当前 DataView 的指定字节偏移处读取 4 个字节,并将其解释为 32 位有符号整数。
DataView.prototype.getInt8()从当前 DataView 的指定字节偏移处读取 1 个字节,并将其解释为 8 位有符号整数。
DataView.prototype.getUint16()从当前 DataView 的指定字节偏移处读取 2 个字节,并将其解释为 16 位无符号整数。
DataView.prototype.getUint32()从当前 DataView 的指定字节偏移处读取 4 个字节,并将其解释为 32 位无符号整数。
DataView.prototype.getUint8()从当前 DataView 的指定字节偏移处读取 1 个字节,并将其解释为 8 位无符号整数。
DataView.prototype.setBigInt64()指定一个数字,并将其作为 64 位有符号整数存储在当前 DataView 的指定字节偏移处的 8 个字节中。
DataView.prototype.setBigUint64()指定一个数字,并将其作为 64 位无符号整数存储在当前 DataView 的指定字节偏移处的 8 个字节中。
DataView.prototype.setFloat16()指定一个数字,并将其作为 16 位浮点数存储在当前 DataView 的指定字节偏移处的 2 个字节中。
DataView.prototype.setFloat32()指定一个数字,并将其作为 32 位浮点数存储在当前 DataView 的指定字节偏移处的 4 个字节中。
DataView.prototype.setFloat64()指定一个数字,并将其作为 64 位浮点数存储在当前 DataView 的指定字节偏移处的 8 个字节中。
DataView.prototype.setInt16()指定一个数字,并将其作为 16 位有符号整数存储在当前 DataView 的指定字节偏移处的 2 个字节中。
DataView.prototype.setInt32()指定一个数字,并将其作为 32 位有符号整数存储在当前 DataView 的指定字节偏移处的 4 个字节中。
DataView.prototype.setInt8()指定一个数字,并将其作为 8 位有符号整数存储在当前 DataView 的指定字节偏移处的 1 个字节中。
DataView.prototype.setUint16()指定一个数字,并将其作为 16 位无符号整数存储在当前 DataView 的指定字节偏移处的 2 个字节中。
DataView.prototype.setUint32()指定一个数字,并将其作为 32 位无符号整数存储在当前 DataView 的指定字节偏移处的 4 个字节中。
DataView.prototype.setUint8()指定一个数字,并将其作为 8 位无符号整数存储在当前 DataView 的指定字节偏移处的 1 个字节中。
| ECMAScript® 2027 Language Specification # sec-dataview-objects |
启用 JavaScript 以查看此浏览器兼容性表。