Tham chiếu mảng được gõ bằng JavaScript
Mảng được gõ bằng JavaScript
Trong Javascript, một mảng được gõ là một bộ đệm dữ liệu nhị phân giống như mảng.
Không có thuộc tính hoặc đối tượng JavaScript nào có tên TypedArray, nhưng các thuộc tính và phương thức có thể được sử dụng với các đối tượng mảng được gõ:
Đối tượng mảng được gõ
Object | Data Type | Range | Try it |
---|---|---|---|
Int8Array | Signed integer (byte) | -128/127 | Try it » |
Uint8Array | Unsigned integer (octet) | 0/255 | Try it » |
Uint8ClampedArray | Unsigned integer (octet) | 0/255 | Try it » |
Int16Array | Short integer | -32768/32767 | Try it » |
Uint16Array | Unsigned short integer | 0/65535 | Try it » |
Int32Array | Signed long integer | -2 31 /2 31 -1 | Try it » |
Uint32Array | Unsigned long integer | 0/2 32 | Try it » |
Float32Array | Float - 7 significant digits | 1.2x10 -38 /3.4x10 38 | Try it » |
Float64Array | Double - 16 significant digits | 5.0x10 -324 /1.8x10 308 | Try it » |
BigInt64Array | Big signed integer | -2 63 /2 63 -1 | Try it » |
BigUint64Array | Big unsigned integer | 0/2 64 | Try it » |
Ghi chú
Mảng được gõ không phải là mảng.
isArray() trên một mảng đã gõ trả về sai.
Nhiều phương thức mảng (như push và pop) không được hỗ trợ bởi mảng đã gõ.
Mảng được định kiểu là các đối tượng giống như mảng để lưu trữ dữ liệu nhị phân trong bộ nhớ.
Các phương thức và thuộc tính mảng được gõ
Method / Property | Description | Try it |
---|---|---|
BYTES_PER_ELEMENT | Property to count the number of bytes used to store one element | Try it » |
fill() | Fill all elements with a value | Try it » |
find() | Returns the first element that satisfies a condition | Try it » |
name | Returns the name of the typed array | Try it » |
of() | Method to create a typed array from an array | Try it » |
some() | Reurns true if one element satisfies a condition | Try it » |
Uint8Array so với Uint8ClampedArray
Sự khác biệt giữa Uint8Array và Uint8ClampedArray là cách thêm các giá trị.
Nếu bạn đặt một phần tử trong Uint8ClampedArray thành giá trị ngoài phạm vi 0-255, phần tử đó sẽ mặc định là 0 hoặc 255.
Một mảng được gõ sẽ chỉ lấy 8 bit đầu tiên của giá trị.
Lợi ích của mảng được gõ
Mảng được định kiểu cung cấp cách xử lý dữ liệu nhị phân hiệu quả như mảng hoạt động trong C.
Mảng được định kiểu là bộ nhớ thô, vì vậy JavaScript có thể chuyển chúng trực tiếp đến bất kỳ hàm nào mà không cần chuyển đổi dữ liệu sang dạng biểu diễn khác.
Mảng được nhập nhanh hơn rất nhiều so với mảng thông thường, để truyền dữ liệu đến các hàm có thể sử dụng dữ liệu nhị phân thô (Trò chơi máy tính, WebGL, Canvas, API tệp, API phương tiện).
API trình duyệt hỗ trợ mảng đã nhập
Ví dụ về API tìm nạp
fetch(url)
.then(request => request.arrayBuffer())
.then(arrayBuffer =>...);
Ví dụ về canvas
const canvas = document.getElementById('my_canvas');
const context = canvas.getContext('2d');
const imageData = context.getImageData(0, 0, canvas.width, canvas.height);
const uint8ClampedArray = imageData.data;
Hỗ trợ trình duyệt
typedArray
là một tính năng ECMAScript6 (ES6).
ES6 (JavaScript 2015) được hỗ trợ trong tất cả các trình duyệt hiện đại kể từ tháng 6 năm 2017:
Chrome 51 | Edge 15 | Firefox 54 | Safari 10 | Opera 38 |
May 2016 | Apr 2017 | Jun 2017 | Sep 2016 | Jun 2016 |
typedArray
không được hỗ trợ trong Internet Explorer.