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

Phương thức ArrayBuffer.isView() trong JavaScript

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ề: true nếu là view của ArrayBuffer, ngược lại false

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
  • ArrayBuffer bản thân không phải view của chính nó
  • Trả về false cho null và undefined (không ném lỗi)