Типизированные массивы

Узнайте, что такое типизированные массивы и как их использовать

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


Больше руководств по браузеру: