Uint8Array
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
TheUint8Array typed array represents an array of 8-bit unsigned integers. The contents are initialized to0 unless initialization data is explicitly provided. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).
Uint8Array is a subclass of the hiddenTypedArray class.
In this article
Description
Uint8Array is currently the onlyTypedArray subclass that has additional methods compared to other typed arrays. Because of its nature as a generic byte array, it is the most suitable for working with arbitrary binary data. It supports two sets of methods for the creation, serialization, and modification ofUint8Array data to/from hex strings and base64 strings.
Uint8Array.fromBase64(),Uint8Array.prototype.toBase64(), andUint8Array.prototype.setFromBase64()for working withbase64 strings, where 3 bytes are encoded by 4 characters that are either 0–9, A–Z, a–z, "+", and "/" (or "-" and "_", if using URL-safe base64).Uint8Array.fromHex(),Uint8Array.prototype.toHex(), andUint8Array.prototype.setFromHex()for working with hex strings, where every byte is encoded by two characters, each one being either 0–9 or A–F (case-insensitive).
Constructor
Uint8Array()Creates a new
Uint8Arrayobject.
Static properties
Also inherits static properties from its parentTypedArray.
Uint8Array.BYTES_PER_ELEMENTReturns a number value of the element size.
1in the case ofUint8Array.
Static methods
Inherits static methods from its parentTypedArray.
Uint8Array.fromBase64()Creates a new
Uint8Arrayobject from a base64-encoded string.Uint8Array.fromHex()Creates a new
Uint8Arrayobject from a hex-encoded string.
Instance properties
Also inherits instance properties from its parentTypedArray.
These properties are defined onUint8Array.prototype and shared by allUint8Array instances.
Uint8Array.prototype.BYTES_PER_ELEMENTReturns a number value of the element size.
1in the case of aUint8Array.Uint8Array.prototype.constructorThe constructor function that created the instance object. For
Uint8Arrayinstances, the initial value is theUint8Arrayconstructor.
Instance methods
Inherits instance methods from its parentTypedArray.
Uint8Array.prototype.setFromBase64()Populates this
Uint8Arrayobject with bytes from a base64-encoded string, returning an object indicating how many bytes were read and written.Uint8Array.prototype.setFromHex()Populates this
Uint8Arrayobject with bytes from a hex-encoded string, returning an object indicating how many bytes were read and written.Uint8Array.prototype.toBase64()Returns a base64-encoded string based on the data in this
Uint8Arrayobject.Uint8Array.prototype.toHex()Returns a hex-encoded string based on the data in this
Uint8Arrayobject.
Examples
>Different ways to create a Uint8Array
// From a lengthconst uint8 = new Uint8Array(2);uint8[0] = 42;console.log(uint8[0]); // 42console.log(uint8.length); // 2console.log(uint8.BYTES_PER_ELEMENT); // 1// From an arrayconst x = new Uint8Array([21, 31]);console.log(x[1]); // 31// From another TypedArrayconst y = new Uint8Array(x);console.log(y[0]); // 21// From an ArrayBufferconst buffer = new ArrayBuffer(8);const z = new Uint8Array(buffer, 1, 4);console.log(z.byteOffset); // 1// From an iterableconst iterable = (function* () { yield* [1, 2, 3];})();const uint8FromIterable = new Uint8Array(iterable);console.log(uint8FromIterable);// Uint8Array [1, 2, 3]Specifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-typedarray-objects> |