Узнайте, что такое типизированные массивы и как их использовать
JavaScript Provides 8 Типизированный массивтипы:
Int8Array
массив 8-битных целых чисел со знакомInt16Array
массив 16-битных целых чисел со знакомInt32Array
массив 32-битных целых чисел со знакомUint8Array
массив 8-битных целых чисел без знакаUint16Array
массив 16-битных целых чисел без знакаUint32Array
массив 32-битных целых чисел без знакаFloat32Array
массив 32-битных чисел с плавающей запятойFloat64Array
массив 64-битных чисел с плавающей запятой
все ониArrayBufferView
экземпляры.
Типизированный массив - это, по сути, представлениеArrayBuffer
, где все элементы имеют одинаковый размер и тип.
DataView
- это еще одно представление в ArrayBuffer, но в этом случае элементы в массиве могут иметь разные размеры и типы.
Вот пример того, как создать массив 8-битных целых чисел со знаком:
const a = new Int8Array()
Вы можете предварительно выделить n байтов:
const bytes = 1024
const a = new Int8Array(bytes)
Основное использование - позволить заглянуть в ArrayBuffer, который сам по себе непрозрачен (мы не можем проверить его содержимое).
Вот как мы это делаем:
//we got this `buffer` ArrayBuffer
const a = new Int8Array(buffer)
Эти типизированные массивы похожи на массивы, поэтому теперь мы можем проверять содержимое буфера с помощью обычных методов доступа к массиву, и у нас есть доступ ко множеству методов и свойств, включаяmap()
,reduce()
и так далее.
Основным вариантом использования типизированных массивов является использование сWebGL,Веб-аудиоилиCanvas API. Некоторые функции WebGL ожидают типизированных массивов, поскольку они намного более производительны, чем обычные массивы JavaScript.
Следует иметь в виду, что типизированные массивы не позволяют нам контролироватьпорядок байтов:он использует порядок байтов платформы. В общем, это работает нормально, потому что основной вариант использования, как мы уже сказали, - использовать массив локально, используя один из мультимедийных API. Кроме того, большинство потребительских компьютеров используют прямой порядок байтов, поскольку Intel использует это соглашение. Но если вы переносите данные типизированного массива в систему, которая использует обратный порядок байтов, данные могут быть плохо закодированы и, как таковые, недействительны.
Если вам нужен такой контроль над порядком байтов, используйтеDataViewвместо.
Скачать мою бесплатнуюРуководство для начинающих по JavaScript
Больше руководств по браузеру:
- Некоторые полезные приемы, доступные в HTML5
- Как я заставил веб-сайт на CMS работать в автономном режиме
- Полное руководство по прогрессивным веб-приложениям
- API-интерфейс Fetch
- Руководство по Push API
- API обмена сообщениями канала
- Учебник для сервис-воркеров
- Руководство по Cache API
- Руководство по API уведомлений
- Погрузитесь в IndexedDB
- API селекторов: querySelector и querySelectorAll
- Эффективно загружайте JavaScript с помощью defer и async
- Объектная модель документа (DOM)
- API веб-хранилища: локальное хранилище и хранилище сеансов
- Узнайте, как работают HTTP-файлы cookie
- API истории
- Формат изображения WebP
- XMLHttpRequest (XHR)
- Подробное руководство по SVG
- Что такое URL-адреса данных
- Дорожная карта для изучения веб-платформы
- CORS, совместное использование ресурсов между источниками
- Веб-воркеры
- Руководство по requestAnimationFrame ()
- Что такое Doctype
- Работа с консолью DevTools и консольным API
- API синтеза речи
- Как дождаться события готовности DOM в простом JavaScript
- Как добавить класс к элементу DOM
- Как перебрать элементы DOM из querySelectorAll
- Как удалить класс из элемента DOM
- Как проверить, есть ли у элемента DOM класс
- Как изменить значение узла DOM
- Как добавить событие щелчка в список элементов DOM, возвращаемых из querySelectorAll
- WebRTC, веб-API реального времени
- Как получить позицию прокрутки элемента в JavaScript
- Как заменить элемент DOM
- Как принимать только изображения в поле входного файла
- Зачем использовать предварительную версию браузера?
- Объект Blob
- Файловый объект
- Объект FileReader
- Объект FileList
- ArrayBuffer
- ArrayBufferView
- Объект URL
- Типизированные массивы
- Объект DataView
- API BroadcastChannel
- API Streams
- Объект FormData
- Объект навигатора
- Как использовать API геолокации
- Как использовать getUserMedia ()
- Как использовать API перетаскивания
- Как работать с прокруткой на веб-страницах
- Обработка форм в JavaScript
- События клавиатуры
- События мыши
- Сенсорные события
- Как удалить всех дочерних элементов из элемента DOM
- Как создать атрибут HTML с помощью ванильного Javascript
- Как проверить, установлен ли флажок, используя JavaScript?
- Как скопировать в буфер обмена с помощью JavaScript
- Как отключить кнопку с помощью JavaScript
- Как сделать страницу редактируемой в браузере
- Как получить значения строки запроса в JavaScript с помощью URLSearchParams
- Как сразу удалить весь CSS со страницы
- Как использовать insertAdjacentHTML
- Safari, предупредить перед выходом
- Как добавить изображение в DOM с помощью JavaScript
- Как сбросить форму
- Как использовать Google Fonts