Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Thuộc tính DataView.byteLength trong JavaScript

Thuộc tính DataView.byteLength trả về độ dài (số byte) của DataView - tức là kích thước vùng nhớ mà view này bao phủ. Đây là thuộc tính chỉ đọc.

Cú pháp

dataView.byteLength

Ví dụ cơ bản

const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);

console.log(view.byteLength); // 8 (toàn bộ buffer)

Ví dụ với length tùy chỉnh

const buffer = new ArrayBuffer(100);
const view1 = new DataView(buffer);        // Toàn bộ buffer
const view2 = new DataView(buffer, 10);    // Từ byte 10 đến hết
const view3 = new DataView(buffer, 10, 20); // Từ byte 10, dài 20 byte

console.log(view1.byteLength); // 100
console.log(view2.byteLength); // 90
console.log(view3.byteLength); // 20

Mối quan hệ: byteOffset + byteLength ≤ buffer.byteLength

const buffer = new ArrayBuffer(50);
const view = new DataView(buffer, 10, 30);

console.log(view.byteOffset);     // 10
console.log(view.byteLength);     // 30
console.log(view.buffer.byteLength); // 50
console.log(view.byteOffset + view.byteLength <= view.buffer.byteLength); // true

Ứng dụng

  • Kiểm tra giới hạn trước khi đọc/ghi: offset + size <= view.byteLength
  • Tính số phần tử: view.byteLength / elementSize
  • Serialization: ghi byteLength trước dữ liệu
  • Phân chia buffer cho nhiều thành phần (header, body, footer)

Lưu ý

  • Nếu không truyền byteLength vào constructor, mặc định = buffer.byteLength - byteOffset
  • Không thể thay đổi sau khi tạo
  • Khác với buffer.byteLength (kích thước buffer gốc)