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.

The Uint8Array typed array represents an array of 8-bit unsigned integers. The contents are initialized to 0 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 hidden TypedArray class.



Creates a new Uint8Array object.

Static properties

Also inherits static properties from its parent TypedArray.


Returns a number value of the element size. 1 in the case of Uint8Array.

Static methods

Inherits static methods from its parent TypedArray.

Instance properties

Also inherits instance properties from its parent TypedArray.

These properties are defined on Uint8Array.prototype and shared by all Uint8Array instances.


Returns a number value of the element size. 1 in the case of a Uint8Array.


The constructor function that created the instance object. For Uint8Array instances, the initial value is the Uint8Array constructor.

Instance methods

Inherits instance methods from its parent TypedArray.


Different ways to create a Uint8Array

// From a length
const uint8 = new Uint8Array(2);
uint8[0] = 42;
console.log(uint8[0]); // 42
console.log(uint8.length); // 2
console.log(uint8.BYTES_PER_ELEMENT); // 1

// From an array
const x = new Uint8Array([21, 31]);
console.log(x[1]); // 31

// From another TypedArray
const y = new Uint8Array(x);
console.log(y[0]); // 21

// From an ArrayBuffer
const buffer = new ArrayBuffer(8);
const z = new Uint8Array(buffer, 1, 4);
console.log(z.byteOffset); // 1

// From an iterable
const iterable = (function* () {
  yield* [1, 2, 3];
const uint8FromIterable = new Uint8Array(iterable);
// Uint8Array [1, 2, 3]


ECMAScript Language Specification
# table-49

Browser compatibility

BCD tables only load in the browser

See also