Spec-Zone.ru › JavaScript

Uint8Array.prototype.setFromHex()

Базовый уровень Впервые доступно

Эта функция работает на последних устройствах и версиях браузеров. Эта функция может не работать в старых устройствах или версиях браузеров. Она доступна во всех браузерах с сентября 2025 года.

Метод setFromHex() экземпляров Uint8Array заполняет этот объект Uint8Array байтами из строки в шестнадцатеричной кодировке, возвращая объект, указывающий, сколько байтов было прочитано и записано.

Этот метод анализирует строку в виде массива байтов. Чтобы преобразовать строку в одно число, используйте функцию parseInt(), установив radix в 16, вместо этого.

Синтаксис

setFromHex(string)

Параметры

string
Шестнадцатеричная строка, кодирующая байты для записи в Uint8Array. Строка должна:
  • Иметь четное количество символов, так как два символа кодируют один байт.
  • Содержать только символы из шестнадцатеричного алфавита, который включает 0–9 и A–F (без учета регистра).
  • Не содержать пробелов (в отличие от Uint8Array.prototype.setFromBase64()).

Обратите внимание, что строка считывается только до того момента, пока массив не будет заполнен, поэтому любой недопустимый шестнадцатеричный синтаксис после этой точки игнорируется.

Возвращаемое значение

Объект, содержащий следующие свойства:

read
Количество шестнадцатеричных символов, прочитанных из входной строки. Если декодированные данные помещаются в массив, это длина входной строки; в противном случае это количество полных шестнадцатеричных символов, которые помещаются в массив.
written
Количество байтов, записанных в Uint8Array. Никогда не будет превышать byteLength этого Uint8Array.

Исключения

SyntaxError
Генерируется, если входная строка содержит символы вне шестнадцатеричного алфавита или имеет нечетную длину.
TypeError
Генерируется, если входная строка не является строкой.

Примеры

Декодирование шестнадцатеричной строки

Этот пример декодирует шестнадцатеричную строку в существующий Uint8Array.

const uint8Array = new Uint8Array(8);
const result = uint8Array.setFromHex("cafed00d");
console.log(result); // { read: 8, written: 4 }
console.log(uint8Array); // Uint8Array(8) [202, 254, 208, 13, 0, 0, 0, 0]

Декодирование большой строки в маленький массив

Если строка содержит больше данных, чем может вместить массив, метод запишет только то количество байтов, которое может вместить массив.

const uint8Array = new Uint8Array(4);
const result = uint8Array.setFromHex("cafed00d-some random stuff");
console.log(result); // { read: 8, written: 4 }
console.log(uint8Array); // Uint8Array(4) [202, 254, 208, 13]

Лишние символы игнорируются, даже если они недействительны. Однако общая длина входной строки должна быть четной.

Установка данных с определенным смещением

Метод setFromHex() всегда начинает запись с начала Uint8Array. Если вы хотите записать данные в середину массива, вы можете вместо этого записать их в TypedArray.prototype.subarray().

const uint8Array = new Uint8Array(8);
// Start writing at offset 2
const result = uint8Array.subarray(2).setFromHex("cafed00d");
console.log(result); // { read: 8, written: 4 }
console.log(uint8Array);
// Uint8Array(8) [0, 0, 202, 254, 208, 13, 0, 0]

Спецификации

Спецификация
Спецификация языка ECMAScript® 2027
# sec-uint8array.prototype.setfromhex

Совместимость с браузерами

Desktop Mobile Server
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
setFromHex
140
140
133
124
18.2
140
133
92
18.2
30.0
140
18.2
1.1.22
2.5.0
25.0.0

Смотрите также

  • Полифил Uint8Array.prototype.setFromHex в core-js
  • Полифил es-shims Uint8Array.prototype.setFromHex
  • Uint8Array
  • Uint8Array.fromHex()
  • Uint8Array.prototype.toHex()
  • parseInt()

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array/setFromHex

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API