Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: байт, данные, arraybuffer

Что такое ArrayBuffer и в чем разница между типами Uint32Array и Float32Array?

Этот вопрос проверяет знание работы с бинарными данными в JavaScript.

Короткий ответ

ArrayBuffer — это объект, который хранит фиксированное количество байт данных в памяти. Он используется для работы с бинарными данными. Uint32Array и Float32Array — это типизированные массивы, которые представляют разные типы данных: Uint32Array работает с беззнаковыми целыми числами, а Float32Array — с числами с плавающей точкой. Основное различие между ними — в типе данных, который они хранят.

Длинный ответ

В JavaScript для работы с сырыми бинарными данными используются объекты ArrayBuffer и типизированные массивы.

ArrayBuffer:
ArrayBuffer представляет собой блок памяти, который содержит фиксированное количество байт. Он сам по себе не предоставляет методов для работы с данными, но служит основой для типизированных массивов, которые позволяют работать с конкретными типами данных, такими как целые или числа с плавающей точкой:

let buffer = new ArrayBuffer(16); // 16 байт памяти

Типизированные массивы:
Типизированные массивы — это массивы, которые привязаны к конкретному типу данных. Например:

  • Uint32Array: Представляет собой массив беззнаковых 32-битных целых чисел. Используется, когда вам нужны целые числа без знака (например, индексы или идентификаторы):

    let uintArray = new Uint32Array(buffer); 
    uintArray[0] = 42; 
    console.log(uintArray[0]); // 42
  • Float32Array: Это массив чисел с плавающей точкой (32-битные). Применяется для работы с дробными числами, например в математических расчётах или графике:

    let floatArray = new Float32Array(buffer); 
    floatArray[0] = 42.5; 
    console.log(floatArray[0]); // 42.5

Разница между Uint32Array и Float32Array:

  • Uint32Array хранит целые числа без знака (0 и положительные числа). Каждый элемент занимает 4 байта (32 бита).

  • Float32Array хранит числа с плавающей точкой. Каждый элемент также занимает 4 байта, но с поддержкой десятичных значений.

Типизированные массивы и ArrayBuffer полезны для работы с бинарными данными, например, при обработке файлов, потоков данных, изображений, видео или при взаимодействии с низкоуровневыми API, такими как WebGL.

Уровень

  • Рейтинг:

    1

  • Сложность:

    7

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#байт

#данные

#arraybuffer

Подпишись на React Developer в телеграм