Get to know MDN better
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
A TypedArray object describes an array-like view of an underlying binary data buffer. There is no global property named TypedArray, nor is there a directly visible TypedArray constructor. Instead, there are a number of different global properties, whose values are typed array constructors for specific element types, listed below. On the following pages you will find common properties and methods that can be used with any typed array containing elements of any type.
The TypedArray constructor (often referred to as %TypedArray% to indicate its "intrinsicness", since it does not correspond to any global exposed to a JavaScript program) serves as the common superclass of all TypedArray subclasses. Think about %TypedArray% as an "abstract class" providing a common interface of utility methods for all typed array subclasses. This constructor is not directly exposed: there is no global TypedArray property. It is only accessible through Object.getPrototypeOf(Int8Array) and similar.
When creating an instance of a TypedArray subclass (e.g., Int8Array), an array buffer is created internally in memory or, if an ArrayBuffer object is given as constructor argument, that ArrayBuffer is used instead. The buffer address is saved as an internal property of the instance and all the methods of %TypedArray%.prototype will set and get values based on that array buffer address.
| Int8Array | -128 to 127 | 1 | byte |
| Uint8Array | 0 to 255 | 1 | octet |
| Uint8ClampedArray | 0 to 255 | 1 | octet |
| Int16Array | -32768 to 32767 | 2 | short |
| Uint16Array | 0 to 65535 | 2 | unsigned short |
| Int32Array | -2147483648 to 2147483647 | 4 | long |
| Uint32Array | 0 to 4294967295 | 4 | unsigned long |
| Float16Array | -65504 to 65504 | 2 | N/A |
| Float32Array | -3.4e38 to 3.4e38 | 4 | unrestricted float |
| Float64Array | -1.8e308 to 1.8e308 | 8 | unrestricted double |
| BigInt64Array | -263 to 263 - 1 | 8 | bigint |
| BigUint64Array | 0 to 264 - 1 | 8 | bigint |
All typed arrays operate on ArrayBuffers, where you can observe the exact byte representation of each element, so how the numbers are encoded in binary format is significant.
All typed arrays except Int8Array, Uint8Array, and Uint8ClampedArray store each element using multiple bytes. These bytes can either be ordered from most significant to least significant (big-endian) or from least significant to most significant (little-endian). See Endianness for more explanation. Typed arrays always use the platform's native byte order. If you want to specify the endianness when writing and reading from buffers, you should use a DataView instead.
When writing to these typed arrays, values that are outside the representable range are normalized.
When a TypedArray is created as a view of a resizable buffer, resizing the underlying buffer will have different effects on the size of the TypedArray depending on whether the TypedArray is constructed as length-tracking.
If a typed array is created without a specific size by omitting the third parameter or passing undefined, the typed array will become length-tracking, and will automatically resize to fit the underlying buffer as the latter is resized:
If a typed array is created with a specific size using the third length parameter, it won't resize to contain the buffer as the latter is grown:
When a buffer is shrunk, the viewing typed array may become out of bounds, in which case the typed array's observed size will decrease to 0. This is the only case where a non-length-tracking typed array's length may change.
If you then grow the buffer again to bring the typed array back in bounds, the typed array's size will be restored to its original value.
The same can happen for length-tracking typed arrays as well, if the buffer is shrunk beyond the byteOffset.
This object cannot be instantiated directly — attempting to construct it with new throws a TypeError.
Instead, you create an instance of a typed array of a particular type, such as an Int8Array or a BigInt64Array. These objects all have a common syntax for their constructors:
Where TypedArray is a constructor for one of the concrete types.
Note: All TypedArray subclasses' constructors can only be constructed with new. Attempting to call one without new throws a TypeError.
When called with an instance of a TypedArray subclass, the typedArray gets copied into a new typed array. For a non-bigint TypedArray constructor, the typedArray parameter can only be of one of the non-bigint types (such as Int32Array). Similarly, for a bigint TypedArray constructor (BigInt64Array or BigUint64Array), the typedArray parameter can only be of one of the bigint types. Each value in typedArray is converted to the corresponding type of the constructor before being copied into the new array. The length of the new typed array will be same as the length of the typedArray argument.
objectWhen called with an object that's not a TypedArray instance, a new typed array is created in the same way as the TypedArray.from() method.
length OptionalWhen called with a non-object, the parameter will be treated as a number specifying the length of the typed array. An internal array buffer is created in memory, of size length multiplied by BYTES_PER_ELEMENT bytes, filled with zeros. Omitting all parameters is equivalent to using 0 as length.
buffer, byteOffset Optional, length OptionalWhen called with an ArrayBuffer or SharedArrayBuffer instance, and optionally a byteOffset and a length argument, a new typed array view is created that views the specified buffer. The byteOffset (in bytes) and length (in number of elements, each occupying BYTES_PER_ELEMENT bytes) parameters specify the memory range that will be exposed by the typed array view. If both are omitted, all of buffer is viewed; if only length is omitted, the remainder of buffer starting from byteOffset is viewed. If length is omitted, the typed array becomes length-tracking.
All TypeArray subclass constructors operate in the same way. They would all throw the following exceptions:
TypeErrorThrown in one of the following cases:
Thrown in one of the following cases:
These properties are defined on the TypedArray constructor object and are thus shared by all TypedArray subclass constructors.
TypedArray[Symbol.species]The constructor function used to create derived objects.
All TypedArray subclasses also have the following static properties:
TypedArray.BYTES_PER_ELEMENTReturns a number value of the element size for the different TypedArray objects.
These methods are defined on the TypedArray constructor object and are thus shared by all TypedArray subclass constructors.
TypedArray.from()Creates a new TypedArray from an array-like or iterable object. See also Array.from().
TypedArray.of()Creates a new TypedArray with a variable number of arguments. See also Array.of().
These properties are defined on TypedArray.prototype and shared by all TypedArray subclass instances.
TypedArray.prototype.bufferReturns the ArrayBuffer referenced by the typed array.
TypedArray.prototype.byteLengthReturns the length (in bytes) of the typed array.
TypedArray.prototype.byteOffsetReturns the offset (in bytes) of the typed array from the start of its ArrayBuffer.
TypedArray.prototype.constructorThe constructor function that created the instance object. TypedArray.prototype.constructor is the hidden TypedArray constructor function, but each typed array subclass also defines its own constructor property.
TypedArray.prototype.lengthReturns the number of elements held in the typed array.
TypedArray.prototype[Symbol.toStringTag]The initial value of the TypedArray.prototype[Symbol.toStringTag] property is a getter that returns the same string as the typed array constructor's name. It returns undefined if the this value is not one of the typed array subclasses. This property is used in Object.prototype.toString(). However, because TypedArray also has its own toString() method, this property is not used unless you call Object.prototype.toString.call() with a typed array as thisArg.
All TypedArray subclasses also have the following instance properties:
TypedArray.prototype.BYTES_PER_ELEMENTReturns a number value of the element size for the different TypedArray objects.
These methods are defined on the TypedArray prototype object and are thus shared by all TypedArray subclass instances.
TypedArray.prototype.at()Takes an integer value and returns the item at that index. This method allows for negative integers, which count back from the last item.
TypedArray.prototype.copyWithin()Copies a sequence of array elements within the array. See also Array.prototype.copyWithin().
TypedArray.prototype.entries()Returns a new array iterator object that contains the key/value pairs for each index in the array. See also Array.prototype.entries().
TypedArray.prototype.every()Returns false if it finds an element in the array that does not satisfy the provided testing function. Otherwise, it returns true. See also Array.prototype.every().
TypedArray.prototype.fill()Fills all the elements of an array from a start index to an end index with a static value. See also Array.prototype.fill().
TypedArray.prototype.filter()Creates a new array with all of the elements of this array for which the provided filtering function returns true. See also Array.prototype.filter().
TypedArray.prototype.find()Returns the first element in the array that satisfies a provided testing function, or undefined if no appropriate element is found. See also Array.prototype.find().
TypedArray.prototype.findIndex()Returns the first index value in the array that has an element that satisfies a provided testing function, or -1 if no appropriate element was found. See also Array.prototype.findIndex().
TypedArray.prototype.findLast()Returns the value of the last element in the array that satisfies a provided testing function, or undefined if no appropriate element is found. See also Array.prototype.findLast().
TypedArray.prototype.findLastIndex()Returns the index of the last element in the array that satisfies a provided testing function, or -1 if no appropriate element was found. See also Array.prototype.findLastIndex().
TypedArray.prototype.forEach()Calls a function for each element in the array. See also Array.prototype.forEach().
TypedArray.prototype.includes()Determines whether a typed array includes a certain element, returning true or false as appropriate. See also Array.prototype.includes().
TypedArray.prototype.indexOf()Returns the first (least) index of an element within the array equal to the specified value, or -1 if none is found. See also Array.prototype.indexOf().
TypedArray.prototype.join()Joins all elements of an array into a string. See also Array.prototype.join().
TypedArray.prototype.keys()Returns a new array iterator that contains the keys for each index in the array. See also Array.prototype.keys().
TypedArray.prototype.lastIndexOf()Returns the last (greatest) index of an element within the array equal to the specified value, or -1 if none is found. See also Array.prototype.lastIndexOf().
TypedArray.prototype.map()Creates a new array with the results of calling a provided function on every element in this array. See also Array.prototype.map().
TypedArray.prototype.reduce()Apply a function against an accumulator and each value of the array (from left-to-right) as to reduce it to a single value. See also Array.prototype.reduce().
TypedArray.prototype.reduceRight()Apply a function against an accumulator and each value of the array (from right-to-left) as to reduce it to a single value. See also Array.prototype.reduceRight().
TypedArray.prototype.reverse()Reverses the order of the elements of an array — the first becomes the last, and the last becomes the first. See also Array.prototype.reverse().
TypedArray.prototype.set()Stores multiple values in the typed array, reading input values from a specified array.
TypedArray.prototype.slice()Extracts a section of an array and returns a new array. See also Array.prototype.slice().
TypedArray.prototype.some()Returns true if it finds an element in the array that satisfies the provided testing function. Otherwise, it returns false. See also Array.prototype.some().
TypedArray.prototype.sort()Sorts the elements of an array in place and returns the array. See also Array.prototype.sort().
TypedArray.prototype.subarray()Returns a new TypedArray from the given start and end element index.
TypedArray.prototype.toLocaleString()Returns a localized string representing the array and its elements. See also Array.prototype.toLocaleString().
TypedArray.prototype.toReversed()Returns a new array with the elements in reversed order, without modifying the original array.
TypedArray.prototype.toSorted()Returns a new array with the elements sorted in ascending order, without modifying the original array.
TypedArray.prototype.toString()Returns a string representing the array and its elements. See also Array.prototype.toString().
TypedArray.prototype.values()Returns a new array iterator object that contains the values for each index in the array. See also Array.prototype.values().
TypedArray.prototype.with()Returns a new array with the element at the given index replaced with the given value, without modifying the original array.
TypedArray.prototype[Symbol.iterator]()Returns a new array iterator object that contains the values for each index in the array.
You can reference elements in the array using standard array index syntax (that is, using bracket notation). However, getting or setting indexed properties on typed arrays will not search in the prototype chain for this property, even when the indices are out of bound. Indexed properties will consult the ArrayBuffer and will never look at object properties. You can still use named properties, just like with all objects.
TypedArrays that aren't empty cannot be frozen, as their underlying ArrayBuffer could be mutated through another TypedArray view of the buffer. This would mean that the object would never genuinely be frozen.
When constructing a TypedArray as a view onto an ArrayBuffer, the byteOffset argument must be aligned to its element size; in other words, the offset must be a multiple of BYTES_PER_ELEMENT.
Like the byteOffset parameter, the byteLength property of an ArrayBuffer passed to a TypedArray's constructor must be a multiple of the constructor's BYTES_PER_ELEMENT.
| ECMAScript® 2027 Language Specification # sec-typedarray-objects |
Enable JavaScript to view this browser compatibility table.
This page was last modified on Feb 24, 2026 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.