Mảng đã nhập

Tìm hiểu Mảng đã nhập là gì và cách sử dụng chúng

JavaScript Provides 8 Mảng đã nhậpcác loại:

  • Int8Arraymột mảng các số nguyên có dấu 8 bit
  • Int16Arraymột mảng các số nguyên có dấu 16 bit
  • Int32Arraymột mảng các số nguyên có dấu 32 bit
  • Uint8Arraymột mảng các số nguyên không dấu 8 bit
  • Uint16Arraymột mảng các số nguyên không dấu 16 bit
  • Uint32Arraymột mảng các số nguyên không dấu 32 bit
  • Float32Arraymột mảng các số dấu phẩy động 32 bit
  • Float64Arraymột mảng các số dấu phẩy động 64 bit

Tất cả đều làArrayBufferViewcác trường hợp.

Mảng đã nhập về cơ bản là một chế độ xem thành mộtArrayBuffer, nơi mọi mặt hàng có cùng kích thước và loại.

DataViewlà một dạng xem khác vào ArrayBuffer, nhưng trong trường hợp này, các mục trong mảng có thể có kích thước và kiểu khác nhau.

Dưới đây là một ví dụ về cách tạo một mảng các số nguyên có dấu 8 bit:

const a = new Int8Array()

Bạn có thể phân bổ trước n byte:

const bytes = 1024
const a = new Int8Array(bytes)

Công dụng chính là cho phép nhìn vào ArrayBuffer, bản thân nó là không rõ ràng (chúng tôi không thể kiểm tra nội dung của nó).

Đây là cách chúng tôi làm như vậy:

//we got this `buffer` ArrayBuffer
const a = new Int8Array(buffer)

Các mảng đã nhập đó giống như mảng, vì vậy bây giờ chúng ta có thể kiểm tra nội dung của bộ đệm thông qua các kỹ thuật truy cập mảng thông thường và chúng ta có quyền truy cập vào rất nhiều phương thức và thuộc tính bao gồmmap(),reduce()và như thế.

Trường hợp sử dụng chính cho Mảng đã nhập là sử dụng vớiWebGL,Âm thanh webhoặc làAPI canvas. Một số hàm WebGL đang mong đợi các mảng đã nhập, vì chúng hoạt động hiệu quả hơn nhiều so với các mảng JavaScript thông thường.

Một điều cần lưu ý là các mảng đã nhập không cho phép chúng ta kiểm soátsự bền bỉ:nó sử dụng thứ tự byte của nền tảng. Nói chung, điều này hoạt động tốt, vì trường hợp sử dụng chính như chúng tôi đã nói là sử dụng mảng cục bộ, sử dụng một trong các API đa phương tiện. Ngoài ra, hầu hết các máy tính tiêu dùng sử dụng ít endian vì Intel sử dụng quy ước đó. Tuy nhiên, nếu bạn chuyển dữ liệu của Mảng đã nhập trên một hệ thống sử dụng big endian, thì dữ liệu có thể bị mã hóa sai và như vậy, không hợp lệ.

Trong trường hợp bạn cần loại kiểm soát này đối với sự bền vững, hãy sử dụngDataViewthay thế.

Tải xuống miễn phí của tôiSổ tay dành cho Người mới bắt đầu JavaScript


Các hướng dẫn khác về trình duyệt: