DataView.prototype.byteOffset
DataView 实例的 byteOffset 访问器属性返回此视图相对于其 ArrayBuffer 或 SharedArrayBuffer 起始位置的偏移量(以字节为单位)。
试一试
// Create an ArrayBuffer with a size in bytes
const buffer = new ArrayBuffer(16);
const view = new DataView(buffer, 12, 4); // From byte 12 for the next 4 bytes
console.log(view.byteOffset);
// Expected output: 12
描述
byteOffset 属性是一个访问器属性,其 set 访问器函数为 undefined,这意味着您只能读取此属性。该值在创建 DataView 时建立,并且无法更改。但是,如果底层缓冲区被重置,导致查看的范围不再有效,则 byteOffset 会变为 0。
示例
使用 byteOffset 属性
js
const buffer = new ArrayBuffer(8);
const dataview = new DataView(buffer);
dataview.byteOffset; // 0 (no offset specified)
const dataview2 = new DataView(buffer, 3);
dataview2.byteOffset; // 3 (as specified when constructing the DataView)
const buffer2 = new ArrayBuffer(16, { maxByteLength: 32 });
const dataviewLengthTracking = new DataView(buffer2, 4);
dataviewLengthTracking.byteOffset; // 4
buffer2.resize(3);
dataviewLengthTracking.byteOffset; // 0 (viewed range is no longer valid)
规范
| 规范 |
|---|
| ECMAScript® 2026 语言规范 # sec-get-dataview.prototype.byteoffset |
浏览器兼容性
加载中…