ArrayBuffer.isView() là phương thức tĩnh kiểm tra xem một đối tượng có phải là "view" (nhìn) của ArrayBuffer hay không. Các view bao gồm: DataView và tất cả các TypedArray (Int8Array, Uint8Array, Float32Array, v.v.).
Cú pháp
ArrayBuffer.isView(arg)
arg: Đối tượng cần kiểm tra- Trả về:
truenếu là view của ArrayBuffer, ngược lạifalse
Ví dụ
// Các view hợp lệ
console.log(ArrayBuffer.isView(new Int32Array())); // true
console.log(ArrayBuffer.isView(new Uint8Array(10))); // true
console.log(ArrayBuffer.isView(new Float64Array(5))); // true
console.log(ArrayBuffer.isView(new DataView(new ArrayBuffer(16)))); // true
// Không phải view
console.log(ArrayBuffer.isView([])); // false (mảng thường)
console.log(ArrayBuffer.isView({})); // false (object thường)
console.log(ArrayBuffer.isView(null)); // false
console.log(ArrayBuffer.isView(undefined)); // false
console.log(ArrayBuffer.isView("string")); // false
console.log(ArrayBuffer.isView(123)); // false
Ví dụ thực tế
function processBuffer(data) {
if (ArrayBuffer.isView(data)) {
// Xử lý TypedArray hoặc DataView
console.log("Độ dài byte:", data.byteLength);
console.log("Buffer gốc:", data.buffer);
} else {
throw new TypeError("Yêu cầu ArrayBuffer view");
}
}
processBuffer(new Uint8Array([1,2,3])); // OK
processBuffer(new DataView(new ArrayBuffer(8))); // OK
processBuffer([1,2,3]); // TypeError
Ứng dụng
- Kiểm tra kiểu dữ liệu trong API chấp nhận cả TypedArray và DataView
- Validation đầu vào cho hàm xử lý nhị phân
- Phân nhánh logic dựa trên khả năng truy cập buffer trực tiếp
Lưu ý
- Là phương thức tĩnh của
ArrayBuffer, không phải phương thức instance ArrayBufferbản thân không phải view của chính nó- Trả về
falsechonullvàundefined(không ném lỗi)