Hướng dẫn tài liệu tham khảo mảng typed JavaScript
- Trang trước Câu lệnh JS
- Trang tiếp theo Object Window
JavaScript 类型化数组
在 Javascript 中,类型化数组是二进制数据的类似数组的缓冲区。
不存在名为 TypedArray 的 JavaScript 属性或对象,但属性和方法可以与类型化数组对象一起使用:
实例
const myArr = new Int8Array(10);
类型化数组的对象
对象 | 数据类型 | 范围 |
---|---|---|
Int8Array | 有符号整数(字节) | -128/127 |
Uint8Array | 无符号整数(八位字节) | 0/255 |
Uint8ClampedArray | 无符号整数(八位字节) | 0/255 |
Int16Array | 短整数 | -32768/32767 |
Uint16Array | 无符号短整数 | 0/65535 |
Int32Array | 有符号长整数 | -231/231-1 |
Uint32Array | 无符号长整数 | 0/232 |
Float32Array | 浮点 - 7 位有效数字 | 1.2x10-38/3.4x1038 |
Float64Array | 双精度浮点 - 16 位有效数字 | 5.0x10-324/1.8x10308 |
BigInt64Array | 有符号大整数 | -263/263-1 |
BigUint64Array | BigUint64Array | 0/264 |
Giải thích
Các mảng loại hóa không phải là mảng.
isArray() trên các mảng loại hóa trả về false.
Các mảng loại hóa không hỗ trợ nhiều phương pháp của mảng (như push và pop).
Các mảng loại hóa là các đối tượng giống như mảng, được sử dụng để lưu trữ dữ liệu nhị phân trong bộ nhớ.
Phương pháp và thuộc tính của Typed Array
Phương pháp / Thuộc tính | Mô tả |
---|---|
BYTES_PER_ELEMENT | Tính thuộc tính số byte cần để lưu trữ một phần tử. |
fill() | Lấp đầy tất cả các phần tử bằng một giá trị. |
find() | Trả về phần tử đầu tiên thỏa mãn điều kiện. |
name | Trả về tên của mảng loại hóa. |
of() | Tạo các mảng loại hóa từ mảng. |
some() | Nếu một phần tử thỏa mãn điều kiện, thì trả về true. |
Uint8Array so với Uint8ClampedArray
Sự khác biệt giữa Uint8Array và Uint8ClampedArray nằm ở cách thêm giá trị.
Nếu một phần tử của Uint8ClampedArray được đặt trong khoảng từ 0 đến 255, nó sẽ mặc định là 0 hoặc 255.
Các mảng loại hóa chỉ lấy giá trị của 8 bit đầu tiên.
Lợi ích của các mảng loại hóa
Các mảng loại hóa cung cấp một phương pháp xử lý dữ liệu nhị phân, hoạt động hiệu quả như một mảng trong C.
Các mảng loại hóa là bộ nhớ nguyên thuỷ, vì vậy JavaScript có thể truyền chúng trực tiếp vào 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.
Các mảng loại hóa nhanh hơn nhiều so với các mảng thông thường, được sử dụng để truyền dữ liệu cho các hàm có thể sử dụng dữ liệu nhị phân nguyên thuỷ (trò chơi máy tính, WebGL, Canvas, API tệp, API phương tiện).
API trình duyệt hỗ trợ các mảng loại hóa
Mô hình Fetch API
fetch(url) .then(request => request.arrayBuffer()) .then(arrayBuffer =>...);
Mô hình 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à tính năng của ECMAScript6 (ES6).
Tất cả các trình duyệt hiện đại đều hỗ trợ ES6 (JavaScript 2015).
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
Có | Có | Có | Có | Có |
Internet Explorer 11 (và các phiên bản trước) không hỗ trợ typedArray.
- Trang trước Câu lệnh JS
- Trang tiếp theo Object Window