TypedArray

Объект TypedArray (типизированный массив) это массивоподобное представление нижележащего буфера с бинарными данными (ArrayBuffer). Нет ни глобального свойства TypedArray, ни открытого конструктора TypedArray. Но существует ряд глобальных элементов, которые являются конструкторами типизированных массивов для конкретно заданных типов данных. Они приведены ниже. Далее вы найдёте общие свойства и функции, которые можно использовать с любыми типизированными массивами.

Синтаксис

new TypedArray(); // новое в ES2017
new TypedArray(length);
new TypedArray(typedArray);
new TypedArray(object);
new TypedArray(buffer [, byteOffset [, length]]);

где TypedArray() это одно из следующих значений:

Int8Array(), Uint8Array(), Uint8ClampedArray(), Int16Array(), Uint16Array(), Int32Array(), Uint32Array(), Float32Array(), Float64Array()

Параметры

length
При вызове в памяти создаётся буфер длины  lengthBYTES_PER_ELEMENT  байт, содержащий нули
typedArray
Когда вызывается с аргументом typedArray, который может быть объектом любого из типов типизированных массивов (например, Int32Array), тогда переданный массив typedArray копируется в новый массив. Каждое значение из typedArray конвертируется в соответствующий конструктору тип прямо перед копированием. Длина нового объекта typedArray будет такой же как и длина переданного в параметре typedArray
object
Новый массив создаётся так, как если бы была вызвана функция TypedArray.from()
buffer, byteOffset, length
Когда происходит вызов с параметрами buffer и опциональными параметрами byteOffset и length, то будет создан новый типизированный массив, который будет отражать buffer типа ArrayBuffer. Параметры byteOffset и length определяют диапазон (размер) памяти, выводимый данным массивоподобным представлением. Если оба этих параметра (byteOffset и length) опущены, то будет использован весь буфер buffer; если опущен только length, то будет выведен весь остаток буфера после смещения начала отсчета элементов, заданного параметром byteOffset.

Описание

ECMAScript 2015 определяет конструктор объекта TypedArray, который является прототипом всех TypedArray-конструкторов. Этот конструктор не открыт явным образом: какое-либо глобальное свойство %TypedArray% или TypedArray отсутствует.  Он доступен только через Object.getPrototypeOf(...) (например, Int8Array.prototype). Все TypedArrays конструкторы наследуют общие свойства от конструктора %TypedArray%. Кроме того, все прототипы типизированных массивов (TypedArray.prototype) имеют своим прототипом %TypedArray%.prototype.

Сам по себе конструктор %TypedArray% не имеет пользы. Его вызов напрямую или через оператор new  выдаст ошибку TypeError, кроме случая, когда он используется во время создания объектов в JS-движке, поддерживающего подклассы.  В настоящее время такие движки неизвестны, поэтому %TypedArray% используется только для дополнения функциональности (затычка) браузеров в конструкторах TypedArray.

Когда создаётся экземпляр TypedArray (например, Int8Array), то буферный массив создаётся в памяти, в случае если объект ArrayBuffer передаётся как аргумент конструктора, то вместо создания буфера используется он. Адрес буфера сохраняется во внутреннем свойстве экземпляра, и все методы из %TypedArray%.prototype, например сеттеры и геттеры, оперируют с буфером, по этому адресу.

Доступ к свойствам

Получить доступ к элементам массива можно используя стандартный синтаксис по индексу (например, arr[12]). Однако, получение и установка индексируемых свойств по цепи прототипов не будет происходить даже в случае, когда вы пытаетесь использовать индексы извне массива. Индексируемые свойства обращаются к элементам буфера ArrayBuffer и не имеют отношения к объектным свойствам. Также можно использовать именованные свойства как и в обычных объектах.

//Установка и получение используя стандартный синтаксис массивов
var int16 = new Int16Array(2);
int16[0] = 42;
console.log(int16[0]); // 42

//Отсутствует обращение к свойству прототипа (элемент №20 должен бы иметь значение "foo")
Int8Array.prototype[20] = "foo";
(new Int8Array(32))[20]; // 0
//Отсутствует даже в случае обращения к индексу извне текущего массива
Int8Array.prototype[20] = "foo";
(new Int8Array(8))[20]; // undefined
// также в случае отрицательных индексов
Int8Array.prototype[-1] = "foo";
(new Int8Array(8))[-1]; // undefined

// Допустимы именованные свойства
Int8Array.prototype.foo = "bar";
(new Int8Array(32)).foo; // "bar"

Объекты TypedArray

Тип Диапазон значений Размер (байты) Описание Тип Web IDL Эквивалентный тип языка C
Int8Array -128 до 127 1 8-битное целое со знаком с дополнением до двух byte int8_t
Uint8Array 0 до 255 1 8-битное беззнаковое целое octet uint8_t
Uint8ClampedArray 0 до 255 1 8-битное беззнаковое целое (фиксированное от 0 до 255) octet uint8_t
Int16Array -32768 до 32767 2 16-битное целое со знаком с дополнением до двух short int16_t
Uint16Array 0 до 65535 2 16-битное беззнаковое целое unsigned short uint16_t
Int32Array -2147483648 до 2147483647 4 32-битное целое со знаком с дополнением до двух long int32_t
Uint32Array 0 до 4294967295 4 32-битное беззнаковое целое unsigned long uint32_t
Float32Array 1.2x10-38 to 3.4x1038 4 32-битное число с плавающей точкой IEEE-стандарта (7 значащих цифр, нпример 1.123456) unrestricted float float
Float64Array 5.0x10-324 to 1.8x10308 8 64-битное число с плавающей точкой IEEE-стандарта (16 значащих цифр, например, 1.123...15) unrestricted double double

Свойства

TypedArray.BYTES_PER_ELEMENT
Возвращает размер элемента для разных типизированных массивов.
TypedArray.length
Свойство "Длина", значение которого 0.
TypedArray.name
Возвращает строковое имя конструктора. Например, "Int8Array".
get TypedArray[@@species]
Конструктор. Используется для создания производных объектов.
TypedArray.prototype
Прототип для TypedArray-объектов.

Методы

TypedArray.from()
Создаёт типизированный массив из массивоподобного или перечислимого объекта. Смотрите Array.from().
TypedArray.of()
Создаёт новый типизированный массив с переменным числом аргументов, из которых создастся массив. Смотрите Array.of().

Прототип TypedArray

Все TypedArrays-массивы наследуют от TypedArray.prototype.

Свойства

Методы

Полифилы (дополнители) методов

Многие методы, используемые в TypedArray, могут быть подменены, используя методы, присутствующие среди стандартных в прототипе Arrays. Следующий кусок Javascript-кода демонстрирует, как вы можете дополнить недостающие методы Typed Array.

var typedArrayTypes = [Int8Array, Uint8Array, Uint8ClampedArray, Int16Array,
          Uint16Array, ​​​Int32Array, Uint32Array, ​​​Float32Array, Float64Array];

for (var k in typedArrayTypes)
    for (var v in Array.prototype)
        if (Array.prototype.hasOwnProperty(v) && 
          !typedArrayTypes[k].prototype.hasOwnProperty(v))
            typedArrayTypes[k].prototype[v] = Array.prototype[v];

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

Спецификация Статус Примечание
Typed Array Specification Устаревшая Определяет работу TypedArray и ArrayBufferView. Заменен в ECMAScript 6.
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'TypedArray Objects' в этой спецификации.
Стандарт Первоначальное определение в стандарте ECMA. Определяет поведение индекных и именованных свойств. Указывает, что необходимо использовать оператор new.
ECMAScript (ECMA-262)
Определение 'TypedArray Objects' в этой спецификации.
Живой стандарт Спецификация ECMAScript 2017 изменила конструктор TypedArray, так что используется операция ToIndex, и позволены конструкторы без аргументов.

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

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung InternetNode.js
TypedArrayChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 4IE Полная поддержка 10Opera Полная поддержка 11.6Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.10
BYTES_PER_ELEMENTChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 4IE Полная поддержка 10Opera Полная поддержка 11.6Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.10
bufferChrome Полная поддержка 7Edge Полная поддержка 14Firefox Полная поддержка 4IE Полная поддержка 10Opera Полная поддержка 11.6Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.10
byteLengthChrome Полная поддержка 7Edge Полная поддержка 14Firefox Полная поддержка 4IE Полная поддержка 10Opera Полная поддержка 11.6Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.10
byteOffsetChrome Полная поддержка 7Edge Полная поддержка 14Firefox Полная поддержка 4IE Полная поддержка 10Opera Полная поддержка 11.6Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.10
Constructor without argumentsChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 55IE Полная поддержка 10Opera Полная поддержка 11.6Safari Полная поддержка 5.1WebView Android Полная поддержка ≤37Chrome Android Полная поддержка 18Firefox Android Полная поддержка 55Opera Android Полная поддержка 12Safari iOS Полная поддержка 5Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.10
copyWithinChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 34IE Нет поддержки НетOpera Полная поддержка 36Safari Полная поддержка 9.1WebView Android Нет поддержки НетChrome Android Нет поддержки НетFirefox Android Полная поддержка 34Opera Android Нет поддержки НетSafari iOS Полная поддержка 9.3Samsung Internet Android Нет поддержки Нетnodejs Полная поддержка 4.0.0
entriesChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 37IE Нет поддержки НетOpera Полная поддержка 36Safari Полная поддержка 9.1WebView Android Нет поддержки НетChrome Android Полная поддержка 45Firefox Android Полная поддержка 37Opera Android Нет поддержки НетSafari iOS Полная поддержка 9.3Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 0.12
everyChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 37IE Нет поддержки НетOpera Полная поддержка 36Safari Полная поддержка 9.1WebView Android Нет поддержки НетChrome Android Полная поддержка 45Firefox Android Полная поддержка 37Opera Android Нет поддержки НетSafari iOS Полная поддержка 9.3Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 4.0.0
fillChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 37IE Нет поддержки НетOpera Полная поддержка 36Safari Полная поддержка 9.1WebView Android Нет поддержки НетChrome Android Полная поддержка 45Firefox Android Полная поддержка 37Opera Android Нет поддержки НетSafari iOS Полная поддержка 9.3Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 4.0.0
filterChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 38IE Нет поддержки НетOpera Нет поддержки НетSafari Полная поддержка 9.1WebView Android Нет поддержки НетChrome Android Полная поддержка 45Firefox Android Полная поддержка 38Opera Android Нет поддержки НетSafari iOS Полная поддержка 9.3Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 4.0.0
findChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 37IE Нет поддержки НетOpera Полная поддержка 32Safari Полная поддержка 9.1WebView Android Полная поддержка 45Chrome Android Полная поддержка 45Firefox Android Полная поддержка 37Opera Android Полная поддержка 32Safari iOS Полная поддержка 9.3Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 4.0.0
findIndexChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 37IE Нет поддержки НетOpera Полная поддержка 32Safari Полная поддержка 9.1WebView Android Полная поддержка 45Chrome Android Полная поддержка 45Firefox Android Полная поддержка 37Opera Android Полная поддержка 32Safari iOS Полная поддержка 9.3Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 4.0.0
forEachChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 38IE Нет поддержки НетOpera Полная поддержка 32Safari Полная поддержка 10WebView Android Полная поддержка 45Chrome Android Полная поддержка 45Firefox Android Полная поддержка 38Opera Android Полная поддержка 32Safari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 4.0.0
fromChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 38IE Нет поддержки НетOpera Нет поддержки НетSafari Полная поддержка 10WebView Android Нет поддержки НетChrome Android Нет поддержки НетFirefox Android Полная поддержка 38Opera Android Нет поддержки НетSafari iOS Полная поддержка 10Samsung Internet Android Нет поддержки Нетnodejs Полная поддержка 4.0.0
includesChrome Полная поддержка 47Edge Полная поддержка 14Firefox Полная поддержка 43IE Нет поддержки НетOpera Полная поддержка 34Safari Полная поддержка 10WebView Android Нет поддержки НетChrome Android Полная поддержка 47Firefox Android Полная поддержка 43Opera Android Полная поддержка 34Safari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 6.0.0
Полная поддержка 6.0.0
Полная поддержка 5.0.0
Отключено
Отключено From version 5.0.0: this feature is behind the --harmony runtime flag.
Indexed properties not consulting prototypeChrome Полная поддержка 7
Замечания
Полная поддержка 7
Замечания
Замечания Negative integers are not considered as indexed properties and therefore return the value of the prototype property.
Edge Полная поддержка 12
Замечания
Полная поддержка 12
Замечания
Замечания Negative integers are not considered as indexed properties and therefore return the value of the prototype property.
Firefox Полная поддержка 25IE Полная поддержка 10
Замечания
Полная поддержка 10
Замечания
Замечания Negative integers are not considered as indexed properties and therefore return the value of the prototype property.
Opera Полная поддержка 11.6
Замечания
Полная поддержка 11.6
Замечания
Замечания Negative integers are not considered as indexed properties and therefore return the value of the prototype property.
Safari Полная поддержка 5.1
Замечания
Полная поддержка 5.1
Замечания
Замечания Negative integers are not considered as indexed properties and therefore return the value of the prototype property.
WebView Android Полная поддержка ≤37
Замечания
Полная поддержка ≤37
Замечания
Замечания Negative integers are not considered as indexed properties and therefore return the value of the prototype property.
Chrome Android Полная поддержка 18
Замечания
Полная поддержка 18
Замечания
Замечания Negative integers are not considered as indexed properties and therefore return the value of the prototype property.
Firefox Android Полная поддержка 25Opera Android Полная поддержка 12
Замечания
Полная поддержка 12
Замечания
Замечания Negative integers are not considered as indexed properties and therefore return the value of the prototype property.
Safari iOS Полная поддержка 5
Замечания
Полная поддержка 5
Замечания
Замечания Negative integers are not considered as indexed properties and therefore return the value of the prototype property.
Samsung Internet Android Полная поддержка 1.0
Замечания
Полная поддержка 1.0
Замечания
Замечания Negative integers are not considered as indexed properties and therefore return the value of the prototype property.
nodejs Полная поддержка 0.10
Замечания
Полная поддержка 0.10
Замечания
Замечания Negative integers are not considered as indexed properties and therefore return the value of the prototype property.
indexOfChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 37
Замечания
Полная поддержка 37
Замечания
Замечания Starting with Firefox 47, this method will no longer return -0. For example, new Uint8Array([0]).indexOf(0, -0) will now always return +0.
IE Нет поддержки НетOpera Полная поддержка 32Safari Полная поддержка 9.1WebView Android Нет поддержки НетChrome Android Полная поддержка 45Firefox Android Полная поддержка 37
Замечания
Полная поддержка 37
Замечания
Замечания Starting with Firefox 47, this method will no longer return -0. For example, new Uint8Array([0]).indexOf(0, -0) will now always return +0.
Opera Android Полная поддержка 32Safari iOS Полная поддержка 9.3Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 4.0.0
Iterable in constructorChrome Полная поддержка 39Edge Полная поддержка 14Firefox Полная поддержка 52IE Нет поддержки НетOpera Полная поддержка 26Safari Полная поддержка 10WebView Android Полная поддержка 39Chrome Android Полная поддержка 39Firefox Android Полная поддержка 52Opera Android Полная поддержка 26Safari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 4.0nodejs Полная поддержка 4.0.0
joinChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 37IE Нет поддержки НетOpera Полная поддержка 32Safari Полная поддержка 9.1WebView Android Полная поддержка 45Chrome Android Полная поддержка 45Firefox Android Полная поддержка 37Opera Android Полная поддержка 32Safari iOS Полная поддержка 9.3Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 4.0.0
keysChrome Полная поддержка 38Edge Полная поддержка 14Firefox Полная поддержка 37IE Нет поддержки НетOpera Полная поддержка 25Safari Полная поддержка 10WebView Android Полная поддержка 38Chrome Android Полная поддержка 38Firefox Android Полная поддержка 37Opera Android Полная поддержка 25Safari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 3.0nodejs Полная поддержка 0.12
lastIndexOfChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 37
Замечания
Полная поддержка 37
Замечания
Замечания Starting with Firefox 47, this method will no longer return -0. For example, new Uint8Array([0]).lastIndexOf(0, -0) will now always return +0.
IE Нет поддержки НетOpera Полная поддержка 32Safari Полная поддержка 10WebView Android Полная поддержка 45Chrome Android Полная поддержка 45Firefox Android Полная поддержка 37
Замечания
Полная поддержка 37
Замечания
Замечания Starting with Firefox 47, this method will no longer return -0. For example, new Uint8Array([0]).lastIndexOf(0, -0) will now always return +0.
Opera Android Полная поддержка 32Safari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 4.0.0
lengthChrome Полная поддержка 7Edge Полная поддержка 14Firefox Полная поддержка 4IE Полная поддержка 10Opera Полная поддержка 11.6Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.10
mapChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 38IE Нет поддержки НетOpera Полная поддержка 32Safari Полная поддержка 9.1WebView Android Полная поддержка 45Chrome Android Полная поддержка 45Firefox Android Полная поддержка 38Opera Android Полная поддержка 32Safari iOS Полная поддержка 9.3Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 4.0.0
nameChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 4IE Полная поддержка 10Opera Полная поддержка 11.6Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.10
Named propertiesChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 30IE Полная поддержка 10Opera Полная поддержка 11.6Safari Полная поддержка 5.1WebView Android Полная поддержка ≤37Chrome Android Полная поддержка 18Firefox Android Полная поддержка 30Opera Android Полная поддержка 12Safari iOS Полная поддержка 5Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.10
TypedArray() without new throwsChrome Полная поддержка 7Edge Полная поддержка 14Firefox Полная поддержка 44IE Нет поддержки НетOpera Полная поддержка 15Safari Полная поддержка 5.1WebView Android Полная поддержка ≤37Chrome Android Полная поддержка 18Firefox Android Полная поддержка 44Opera Android Полная поддержка 14Safari iOS Полная поддержка 5Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.12
ofChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 38IE Нет поддержки НетOpera Нет поддержки НетSafari Полная поддержка 9.1WebView Android Нет поддержки НетChrome Android Нет поддержки НетFirefox Android Полная поддержка 38Opera Android Нет поддержки НетSafari iOS Полная поддержка 9.3Samsung Internet Android Нет поддержки Нетnodejs Полная поддержка 4.0.0
reduceChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 37IE Нет поддержки НетOpera Полная поддержка 32Safari Полная поддержка 10WebView Android Полная поддержка 45Chrome Android Полная поддержка 45Firefox Android Полная поддержка 37Opera Android Нет поддержки НетSafari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 4.0.0
reduceRightChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 37IE Нет поддержки НетOpera Полная поддержка 32Safari Полная поддержка 10WebView Android Полная поддержка 45Chrome Android Полная поддержка 45Firefox Android Полная поддержка 37Opera Android Нет поддержки НетSafari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 4.0.0
reverseChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 37IE Нет поддержки НетOpera Полная поддержка 32Safari Полная поддержка 10WebView Android Полная поддержка 45Chrome Android Полная поддержка 45Firefox Android Полная поддержка 37Opera Android Нет поддержки НетSafari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 4.0.0
setChrome Полная поддержка 7Edge Полная поддержка 14Firefox Полная поддержка 4IE Полная поддержка 10Opera Полная поддержка 11.6Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.10
sliceChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 38IE Нет поддержки НетOpera Полная поддержка 32Safari Полная поддержка 10WebView Android Полная поддержка 45Chrome Android Полная поддержка 45Firefox Android Полная поддержка 38Opera Android Полная поддержка 32Safari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 4.0.0
someChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 37IE Нет поддержки НетOpera Полная поддержка 32Safari Полная поддержка 10WebView Android Полная поддержка 45Chrome Android Полная поддержка 45Firefox Android Полная поддержка 37Opera Android Нет поддержки НетSafari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 4.0.0
sortChrome Полная поддержка 45Edge Полная поддержка 14Firefox Полная поддержка 46IE Нет поддержки НетOpera Полная поддержка 32Safari Полная поддержка 10WebView Android Полная поддержка 45Chrome Android Полная поддержка 45Firefox Android Полная поддержка 46Opera Android Полная поддержка 32Safari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 4.0.0
subarrayChrome Полная поддержка 7Edge Полная поддержка 14Firefox Полная поддержка 4IE Полная поддержка 10Opera Полная поддержка 11.6Safari Полная поддержка 5.1WebView Android Полная поддержка 4Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 12Safari iOS Полная поддержка 4.2Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.12
toLocaleStringChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 51IE Полная поддержка 10Opera Полная поддержка 11.6Safari Полная поддержка 5.1WebView Android Полная поддержка ≤37Chrome Android Полная поддержка 18Firefox Android Полная поддержка 51Opera Android Полная поддержка 12Safari iOS Полная поддержка 5Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.10
toStringChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 51IE Полная поддержка 10Opera Полная поддержка 11.6Safari Полная поддержка 5.1WebView Android Полная поддержка ≤37Chrome Android Полная поддержка 18Firefox Android Полная поддержка 51Opera Android Полная поддержка 12Safari iOS Полная поддержка 5Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.10
valuesChrome Полная поддержка 38Edge Полная поддержка 14Firefox Полная поддержка 37IE Нет поддержки НетOpera Полная поддержка 25Safari Полная поддержка 10WebView Android Полная поддержка 38Chrome Android Полная поддержка 38Firefox Android Полная поддержка 37Opera Android Полная поддержка 25Safari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 3.0nodejs Полная поддержка 0.12
@@iteratorChrome Полная поддержка 38Edge Полная поддержка 12Firefox Полная поддержка 36
Полная поддержка 36
Нет поддержки 27 — 36
Замечания Альтернативное имя
Замечания A placeholder property named @@iterator is used.
Альтернативное имя Использует нестандартное имя: @@iterator
Нет поддержки 17 — 27
Замечания Альтернативное имя
Замечания A placeholder property named iterator is used.
Альтернативное имя Использует нестандартное имя: iterator
IE Нет поддержки НетOpera Полная поддержка 25Safari Полная поддержка 10WebView Android Полная поддержка 38Chrome Android Полная поддержка 38Firefox Android Полная поддержка 36
Полная поддержка 36
Нет поддержки 27 — 36
Замечания Альтернативное имя
Замечания A placeholder property named @@iterator is used.
Альтернативное имя Использует нестандартное имя: @@iterator
Нет поддержки 17 — 27
Замечания Альтернативное имя
Замечания A placeholder property named iterator is used.
Альтернативное имя Использует нестандартное имя: iterator
Opera Android Полная поддержка 25Safari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 3.0nodejs Полная поддержка 0.12
@@speciesChrome Полная поддержка 51Edge Полная поддержка 13Firefox Полная поддержка 48IE Нет поддержки НетOpera Полная поддержка 38Safari Полная поддержка 10WebView Android Полная поддержка 51Chrome Android Полная поддержка 51Firefox Android Полная поддержка 48Opera Android Полная поддержка 41Safari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 6.5.0
Полная поддержка 6.5.0
Полная поддержка 6.0.0
Отключено
Отключено From version 6.0.0: this feature is behind the --harmony runtime flag.

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки
Смотрите замечания реализации.
Смотрите замечания реализации.
Пользователь должен сам включить эту возможность.
Пользователь должен сам включить эту возможность.
Использует нестандартное имя.
Использует нестандартное имя.

Совместимость

Начиная с ECMAScript 2015, конструкторы TypedArray требуют использования оператора new. Вызов конструктора TypedArray как функции без new, отныне выбросит ошибку TypeError.

var dv = Int8Array([1, 2, 3]);
// TypeError: вызов встроенного конструктора Int8Array 
// без new запрещён
var dv = new Int8Array([1, 2, 3]);

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