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
byteLengthvà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)