描述
位元組序
多位元組數字格式在記憶體中的表示方式因機器架構而異——有關解釋,請參閱 位元組序。DataView 訪問器提供瞭如何訪問資料的顯式控制,無論執行計算機的位元組序如何。例如,WebAssembly 記憶體始終是小端序,因此你應該使用 DataView 而不是型別化陣列來讀寫多位元組值。請參閱 WebAssembly.Memory 瞭解示例。
const littleEndian = (() => {
const buffer = new ArrayBuffer(2);
new DataView(buffer).setInt16(0, 256, true /* littleEndian */);
// Int16Array uses the platform's endianness.
return new Int16Array(buffer)[0] === 256;
})();
console.log(littleEndian); // true or false
注意: DataView 預設使用大端序進行讀寫,但大多數平臺使用小端序。
建構函式
DataView()-
建立一個新的
DataView物件。
例項屬性
這些屬性定義在 DataView.prototype 上,並被所有 DataView 例項共享。
DataView.prototype.buffer-
返回
DataView引用的ArrayBuffer。 DataView.prototype.byteLength-
返回
DataView的長度(以位元組為單位)。 DataView.prototype.byteOffset-
返回
DataView相對於其ArrayBuffer起始位置的偏移量(以位元組為單位)。 DataView.prototype.constructor-
建立例項物件的建構函式。對於
DataView例項,初始值為DataView建構函式。 DataView.prototype[Symbol.toStringTag]-
[Symbol.toStringTag]屬性的初始值為字串"DataView"。該屬性用於Object.prototype.toString()。
例項方法
DataView.prototype.getBigInt64()-
從此
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()-
接受一個 BigInt,並將其作為 64 位有符號整數儲存在此
DataView的指定位元組偏移量開始的 8 個位元組中。 DataView.prototype.setBigUint64()-
接受一個 BigInt,並將其作為 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的指定位元組偏移量處的位元組中。 DataView.prototype.setUint16()-
接受一個數字,並將其作為 16 位無符號整數儲存在此
DataView的指定位元組偏移量處的 2 個位元組中。 DataView.prototype.setUint32()-
接受一個數字,並將其作為 32 位無符號整數儲存在此
DataView的指定位元組偏移量處的 4 個位元組中。 DataView.prototype.setUint8()-
接受一個數字,並將其作為 8 位無符號整數儲存在此
DataView的指定位元組偏移量處的位元組中。
示例
使用 DataView
const buffer = new ArrayBuffer(16);
const view = new DataView(buffer, 0);
view.setInt16(1, 42);
view.getInt16(1); // 42
規範
| 規範 |
|---|
| ECMAScript® 2026 語言規範 # sec-dataview-objects |
瀏覽器相容性
載入中…