Typed Array
Оновлено: 09.03.2023
Введені масиви JavaScript
У Javascript типізований масив — це буфер двійкових даних, схожий на масив.
Немає властивості JavaScript або об’єкта з назвою TypedArray, але властивості та методи можна використовувати з об’єктами типізованого масиву:
Об’єкти типізованого масиву
Object | Data Type | Range |
Int8Array | Signed integer (byte) | -128/127 |
Uint8Array | Unsigned integer (octet) | 0/255 |
Uint8ClampedArray | Unsigned integer (octet) | 0/255 |
Int16Array | Short integer | -32768/32767 |
Uint16Array | Unsigned short integer | 0/65535 |
Int32Array | Signed long integer | -231/231-1 |
Uint32Array | Unsigned long integer | 0/232 |
Float32Array | Float - 7 significant digits | 1.2x10-38/3.4x1038 |
Float64Array | Double - 16 significant digits | 5.0x10-324/1.8x10308 |
BigInt64Array | Big signed integer | -263/263-1 |
BigUint64Array | Big unsigned integer | 0/264 |
Примітка
Введені масиви не є масивами.
isArray() для введеного масиву повертає false.
Багато методів масиву (наприклад, push і pop) не підтримуються введеними масивами.
Типізовані масиви — це масивоподібні об’єкти для зберігання двійкових даних у пам’яті.
Методи та властивості типізованого масиву
Method / Property | Description |
BYTES_PER_ELEMENT | Property to count the number of bytes used to store one element |
fill() | Fill all elements with a value |
find() | Returns the first element that satisfies a condition |
name | Returns the name of the typed array |
of() | Method to create a typed array from an array |
some() | Reurns true if one element satisfies a condition |
Uint8Array проти Uint8ClampedArray
Різниця між Uint8Array і Uint8ClampedArray полягає в тому, як додаються значення.
Якщо ви встановите для одного елемента в Uint8ClampedArray значення за межами діапазону 0-255, за замовчуванням буде 0 або 255.
Введений масив прийматиме лише перші 8 біт значення.
Переваги типізованого масиву
Типізовані масиви забезпечують спосіб обробки двійкових даних так само ефективно, як масиви працюють у C.
Типізовані масиви є необробленою пам’яттю, тому JavaScript може передавати їх безпосередньо будь-якій функції без перетворення даних в інше представлення.
Типизовані масиви є значно швидшими за звичайні масиви для передачі даних функціям, які можуть використовувати необроблені двійкові дані (комп’ютерні ігри, WebGL, Canvas, File API, Media API).
Підтримка браузера
typedArray
є функцією ECMAScript6 (ES6).
ES6 (JavaScript 2015) підтримується в усіх сучасних браузерах: