Hướng dẫn javascript typed array - mảng đã nhập javascript

Các mảng gõ JavaScript là các đối tượng giống như mảng cung cấp một cơ chế để đọc và viết dữ liệu nhị phân thô trong bộ đệm bộ nhớ. are array-like objects that provide a mechanism for reading and writing raw binary data in memory buffers.

if [buffer.byteLength === 16] {
  console.log["Yes, it's 16 bytes."];
} else {
  console.log["Oh no, it's the wrong size!"];
}
1 Các đối tượng phát triển và thu nhỏ động và có thể có bất kỳ giá trị JavaScript nào. Động cơ JavaScript thực hiện tối ưu hóa để các mảng này nhanh. Tuy nhiên, khi các ứng dụng web ngày càng trở nên mạnh mẽ hơn, việc thêm các tính năng như thao tác âm thanh và video, truy cập vào dữ liệu thô bằng cách sử dụng websockets, v.v. Để nhanh chóng và dễ dàng thao tác dữ liệu nhị phân thô. Đây là nơi các mảng được gõ xuất hiện. Mỗi mục trong một mảng gõ JavaScript là một giá trị nhị phân thô ở một trong một số định dạng được hỗ trợ, từ số nguyên 8 bit đến các số nổi 64 bit.

Tuy nhiên, các mảng được đánh máy không bị nhầm lẫn với các mảng bình thường, vì gọi

if [buffer.byteLength === 16] {
  console.log["Yes, it's 16 bytes."];
} else {
  console.log["Oh no, it's the wrong size!"];
}
2 trên một mảng được đánh máy trả về
if [buffer.byteLength === 16] {
  console.log["Yes, it's 16 bytes."];
} else {
  console.log["Oh no, it's the wrong size!"];
}
3. Hơn nữa, không phải tất cả các phương thức có sẵn cho các mảng bình thường đều được hỗ trợ bởi các mảng được đánh máy [ví dụ: đẩy và pop].

Bộ đệm và chế độ xem: Kiến trúc mảng gõ

Để đạt được tính linh hoạt và hiệu quả tối đa, JavaScript đã gõ các mảng phân chia việc thực hiện thành bộ đệm và chế độ xem. Một bộ đệm [được triển khai bởi đối tượng

if [buffer.byteLength === 16] {
  console.log["Yes, it's 16 bytes."];
} else {
  console.log["Oh no, it's the wrong size!"];
}
4] là một đối tượng đại diện cho một đoạn dữ liệu; Nó không có định dạng để nói và không cung cấp cơ chế để truy cập nội dung của nó. Để truy cập bộ nhớ có trong bộ đệm, bạn cần sử dụng chế độ xem. Một chế độ xem cung cấp một bối cảnh - nghĩa là một kiểu dữ liệu, bắt đầu bù và số lượng các phần tử - biến dữ liệu thành một mảng được đánh máy.buffers and views. A buffer [implemented by the
if [buffer.byteLength === 16] {
  console.log["Yes, it's 16 bytes."];
} else {
  console.log["Oh no, it's the wrong size!"];
}
4 object] is an object representing a chunk of data; it has no format to speak of and offers no mechanism for accessing its contents. In order to access the memory contained in a buffer, you need to use a view. A view provides a context — that is, a data type, starting offset, and the number of elements — that turns the data into a typed array.

ArrayBuffer

if [buffer.byteLength === 16] {
  console.log["Yes, it's 16 bytes."];
} else {
  console.log["Oh no, it's the wrong size!"];
}
4 là một loại dữ liệu được sử dụng để thể hiện bộ đệm dữ liệu nhị phân có độ dài chung, chung. Bạn không thể trực tiếp thao tác nội dung của
if [buffer.byteLength === 16] {
  console.log["Yes, it's 16 bytes."];
} else {
  console.log["Oh no, it's the wrong size!"];
}
4; Thay vào đó, bạn tạo một chế độ xem mảng được đánh máy hoặc
if [buffer.byteLength === 16] {
  console.log["Yes, it's 16 bytes."];
} else {
  console.log["Oh no, it's the wrong size!"];
}
7 đại diện cho bộ đệm ở một định dạng cụ thể và sử dụng nó để đọc và viết nội dung của bộ đệm.

Gõ các chế độ xem mảng

Các chế độ xem mảng được đánh máy có tên tự mô tả và cung cấp chế độ xem cho tất cả các loại số thông thường như

if [buffer.byteLength === 16] {
  console.log["Yes, it's 16 bytes."];
} else {
  console.log["Oh no, it's the wrong size!"];
}
8,
if [buffer.byteLength === 16] {
  console.log["Yes, it's 16 bytes."];
} else {
  console.log["Oh no, it's the wrong size!"];
}
9,
const int32View = new Int32Array[buffer];
0, v.v. Có một chế độ xem mảng được đánh máy đặc biệt,
const int32View = new Int32Array[buffer];
1. Nó kẹp các giá trị từ 0 đến 255. Ví dụ, điều này rất hữu ích cho việc xử lý dữ liệu Canvas.

Dataview

if [buffer.byteLength === 16] {
  console.log["Yes, it's 16 bytes."];
} else {
  console.log["Oh no, it's the wrong size!"];
}
7 là giao diện cấp thấp cung cấp API Getter/Setter để đọc và ghi dữ liệu tùy ý vào bộ đệm. Điều này rất hữu ích khi xử lý các loại dữ liệu khác nhau, ví dụ. Các chế độ xem mảng được đánh máy nằm trong đơn đặt hàng byte gốc [xem endianness] của nền tảng của bạn. Với
if [buffer.byteLength === 16] {
  console.log["Yes, it's 16 bytes."];
} else {
  console.log["Oh no, it's the wrong size!"];
}
7, bạn có thể kiểm soát thứ tự byte. Nó là lớn theo mặc định và có thể được đặt thành Little-endian trong các phương thức Getter/Setter.

API Web sử dụng mảng được đánh máy

Đây là một số ví dụ về API sử dụng các mảng được đánh máy; Có những người khác, và nhiều hơn nữa đang được thêm vào.

const int32View = new Int32Array[buffer];
4

Phương pháp

const int32View = new Int32Array[buffer];
4 bắt đầu đọc nội dung của
const int32View = new Int32Array[buffer];
6 hoặc
const int32View = new Int32Array[buffer];
7 được chỉ định.

const int32View = new Int32Array[buffer];
8

Phương thức

const int32View = new Int32Array[buffer];
9 '
for [let i = 0; i 

Bài Viết Liên Quan

Chủ Đề