Референсное руководство по типизированным массивам JavaScript
- Предыдущая страница JS предложения
- Следующая страница Объект Window
Типизированные массивы JavaScript
в Javascript типизированные массивы являются буферами двоичных данных, подобными массивам.
в Javascript не существует свойств или объектов с именем TypedArray, но свойства и методы могут использоваться вместе с объектами типизированных массивов:
пример
const myArr = new Int8Array(10);
объект типизированного массива
объект | тип данных | диапазон |
---|---|---|
Int8Array | сigned целое (байт) | -128/127 |
Uint8Array | несigned целое (восьмибитный байт) | 0/255 |
Uint8ClampedArray | несigned целое (восьмибитный байт) | 0/255 |
Int16Array | короткое целое | -32768/32767 |
Uint16Array | несigned короткое целое | 0/65535 |
Int32Array | сigned длинное целое | -231/231-1 |
Uint32Array | несigned длинное целое | 0/232 |
Float32Array | плавающая точка - 7 знаков после запятой | 1.2x10-38/3.4x1038 |
Float64Array | двойная точность плавающей точки - 16 знаков после запятой | 5.0x10-324/1.8x10308 |
BigInt64Array | символьное большое целое | -263/263-1 |
BigUint64Array | Несigned big integer | 0/264 |
Объяснение
Типизированные массивы не являются массивами.
isArray() на типизированных массивах возвращает false.
Типизированные массивы не поддерживают многие методы массивов (например, push и pop).
Типизированные массивы - это объекты, похожие на массивы, которые используются для хранения двоичных данных в памяти.
Методы и свойства Typed Array
Метод / свойство | Описание |
---|---|
BYTES_PER_ELEMENT | Вычисляет атрибут, определяющий количество байт на элемент. |
fill() | Заполняет все элементы одним значением. |
find() | Возвращает первый элемент, удовлетворяющий условию. |
name | Возвращает имя типизированного массива. |
of() | Создание типизированного массива из массива. |
some() | Если элемент удовлетворяет условию, то возвращает true. |
Uint8Array против Uint8ClampedArray
Разница между Uint8Array и Uint8ClampedArray заключается в том, как добавлять значения.
Если элемент Uint8ClampedArray установлен в значение за пределами диапазона 0-255, он будет по умолчанию установлен в 0 или 255.
Типизированные массивы будут принимать только первые 8 бит.
Преимущества типизированных массивов
Типизированные массивы предоставляют метод обработки двоичных данных, который так же эффективен, как и работа с массивами в C.
Типизированные массивы являются исходной памятью, поэтому JavaScript может передавать их любым функциям, не требуя преобразования данных в другую форму.
Типизированные массивы значительно быстрее обычных массивов и используются для передачи данных в функции, которые могут использовать исходные байтовые данные (компьютерные игры, WebGL, Canvas, файловые API, медиа API).
Браузерные API поддерживают типизированные массивы
Пример Fetch API
fetch(url) .then(request => request.arrayBuffer()) .then(arrayBuffer =>...);
Пример 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;
Поддержка браузеров
typedArray Это функция ECMAScript6 (ES6).
Все современные браузеры поддерживают ES6 (JavaScript 2015).
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
Да | Да | Да | Да | Да |
Internet Explorer 11 (и более ранние версии) не поддерживает typedArray.
- Предыдущая страница JS предложения
- Следующая страница Объект Window