Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnología web para desarrolladores
  2. JavaScript
  3. Referencia de JavaScript
  4. Objetos globales
  5. TypedArray

Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.

View in EnglishAlways switch to English

TypedArray

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨julio de 2015⁩.

* Some parts of this feature may have varying levels of support.

Un objetoTypedArray describe una vista similar a un arreglo de unbúfer de datos binarios subyacente. No existe una propiedad global denominadaTypedArray, ni existe un constructorTypedArray directamente visible. En cambio, hay una serie de diferentes propiedades globales, cuyos valores son constructores de arreglos tipados para tipos de elementos específicos, que se enumeran a continuación. En las siguientes páginas, encontrarás propiedades y métodos comunes que se pueden utilizar con cualquier arreglo tipado que contenga elementos de cualquier tipo.

Pruébalo

// Create a TypedArray with a size in bytesconst typedArray1 = new Int8Array(8);typedArray1[0] = 32;const typedArray2 = new Int8Array(typedArray1);typedArray2[1] = 42;console.log(typedArray1);// Expected output: Int8Array [32, 0, 0, 0, 0, 0, 0, 0]console.log(typedArray2);// Expected output: Int8Array [32, 42, 0, 0, 0, 0, 0, 0]

Descripción

ECMAScript 2015 define un constructorTypedArray que sirve como[[Prototype]] de todos los constructoresTypedArray. Este constructor no está expuesto directamente: no existe una propiedad global%TypedArray% oTypedArray. Solo es accesible directamente a través deObject.getPrototypeOf(Int8Array) y similares. Todos los constructores deTypedArray heredan propiedades comunes de la función constructora%TypedArray%. Además, todos los prototipos de arreglos con tipo (TypedArray.prototype) tienen%TypedArray%.prototype como su[[Prototype]].

El constructor%TypedArray% por sí solo no es particularmente útil. Llamarlo o usarlo en una expresiónnew arrojará unTypeError, excepto cuando se usa durante la creación de objetos en motores JS que admiten subclases. Actualmente no existen tales motores, por lo que%TypedArray% solo es útil para rellenar funciones o propiedades en todos los constructoresTypedArray.

Al crear una instancia deTypedArray (p. ej.,Int8Array), se crea un arreglo de búfer internamente en la memoria o, si se proporciona un objetoArrayBuffer como argumento del constructor, entonces se usa en su lugar. La dirección del búfer se guarda como una propiedad interna de la instancia y todos los métodos de%TypedArray%.prototype, es decir, establecer el valor y obtener valor, etc.., operan en esa dirección del arreglo de búfer.

Objetos TypedArray

TipoIntervalo de valoresTamaño en bytesDescripciónTipo de IDL webTipo C equivalente
Int8Array-128 a1271Dos enteros complementarios de 8 bits con signobyteint8_t
Uint8Array0 a2551Entero de 8-bit sin signooctetuint8_t
Uint8ClampedArray0 a2551Entero de 8 bits sin signo (sujeto)octetuint8_t
Int16Array-32768 a327672Dos enteros complementarios de 16 bits con signoshortint16_t
Uint16Array0 a655352Entero de 16 bits sin signoShort sin signouint16_t
Int32Array-2147483648 a21474836474dos enteros complementarios de 32 bits con signolongint32_t
Uint32Array0 a42949672954Enteros de 32 bits sin signolong sin signouint32_t
Float32Array1.2×10^-38 a3.4×10^384Número de coma flotante IEEE de 32 bits (7 dígitos significativos, p. ej.,1.1234567)float sin restriccionesfloat
Float64Array5.0×10^-324 a1.8×10^3088Número de coma flotante IEEE de 64 bits (16 dígitos significativos, p. Ej.,1.123...15)doble sin restriccionesdouble
BigInt64Array-2^63 a2^63-18Dos enteros complementarios de 64 bits con signobigintint64_t (long long con signo)
BigUint64Array0 a2^64-18Entero de 64 bits sin signobigintuint64_t (long long sin signo)

Constructor

No se puede crear una instancia de este objeto directamente. En su lugar, crea una instancia de un arreglo de un tipo particular, tal comoInt8Array oBigInt64Array. Todos estos objetos tienen una sintaxis común para sus constructores:

new TypedArray();new TypedArray(length);new TypedArray(typedArray);new TypedArray(object);new TypedArray(buffer [, byteOffset [, length]]);

DondeTypedArray es un constructor para uno de los tipos concretos.

Parámetros

length

Cuando se llama con un argumentolength, se crea un búfer de arreglo interno en la memoria, de tamañolengthmultiplicado porBYTES_PER_ELEMENT bytes, que contienen ceros.

typedArray

Cuando se llama con un argumentotypedArray, que puede ser un objeto de cualquiera de los tipos de arreglo con tipo (comoInt32Array), eltypedArray se copia en un nuevo arreglo tipado. Cada valor entypedArray se convierte al tipo correspondiente del constructor antes de ser copiado en el nuevo arreglo. La longitud del nuevo arreglo tipado será la misma que la longitud del argumentotypedArray.

object

Cuando se llama con un argumentoobject, se crea un nuevo arreglo tipado como si fuera el métodoTypedArray.from().

buffer,byteOffset,length

Cuando se llama con unbuffer y, opcionalmente, unbyteOffset y unlength, se crea una nueva vista del arreglo tipado que visualiza elArrayBuffer especificado. Los parámetrosbyteOffset ylength especifican el rango de memoria que será expuesto por la vista del arreglo tipado. Si se omiten ambos, se visualiza todo elbuffer; si solo se omitelength, se visualiza el resto debuffer.

Propiedades estáticas

TypedArray.BYTES_PER_ELEMENT

Devuelve un valor numérico del tamaño del elemento para los diferentes objetosTypedArray.

TypedArray.name

Devuelve el valor de cadena del nombre del constructor (por ejemplo,"Int8Array").

get TypedArray[@@species]

La función constructora utilizada para crear objetos derivados.

TypedArray.prototype

Prototipo para objetosTypedArray.

Métodos estáticos

TypedArray.from()

Crea un nuevoTypedArray a partir de un objeto iterable o similar a un arreglo. Consulta tambiénArray.from().

TypedArray.of()

Crea un nuevoTypedArray con un número variable de argumentos. Consulta tambiénArray.of().

Propiedades de la instancia

TypedArray.prototype.buffer

Devuelve elArrayBuffer al que hace referencia el arreglo tipado. Corregido en el momento de la construcción y, por lo tanto, desolo lectura.

TypedArray.prototype.byteLength

Devuelve la longitud (en bytes) del arreglo tipado. Corregido en el momento de la construcción y, por lo tanto, desolo lectura.

TypedArray.prototype.byteOffset

Devuelve el desplazamiento (en bytes) del arreglo tipado desde el inicio de suArrayBuffer. Corregido en el momento de la construcción y, por lo tanto, desolo lectura.

TypedArray.prototype.length

Devuelve el número de elementos contenidos en el arreglo tipado. Corregido en el momento de la construcción y, por lo tanto, desolo lectura.

Métodos de instancia

TypedArray.prototype.copyWithin()

Copia una secuencia de elementos de arreglo dentro del arreglo. Consulta tambiénArray.prototype.copyWithin().

TypedArray.prototype.entries()

Devuelve un nuevo objetoArray Iterator que contiene los pares clave/valor para cada índice del arreglo. Consulta tambiénArray.prototype.entries().

TypedArray.prototype.every()

Comprueba si todos los elementos del arreglo pasan la prueba proporcionada por una función. Consulta tambiénArray.prototype.every().

TypedArray.prototype.fill()

Rellena todos los elementos de un arreglo desde un índice inicial hasta un índice final con un valor estático. Consulta tambiénArray.prototype.fill().

TypedArray.prototype.filter()

Crea un nuevo arreglo con todos los elementos de este arreglo para la cual la función de filtrado proporcionada devuelvetrue. Consulta tambiénArray.prototype.filter().

TypedArray.prototype.find()

Devuelve el valor encontrado en el arreglo, si un elemento del arreglo satisface la función de prueba proporcionada, oundefined si no se encuentra. Consulta tambiénArray.prototype.find().

TypedArray.prototype.findIndex()

Devuelve el índice encontrado en el arreglo, si un elemento del arreglo satisface la función de prueba proporcionada o-1 si no se encuentra. Consulta tambiénArray.prototype.findIndex().

TypedArray.prototype.forEach()

Llama a una función para cada elemento del arreglo. Consulta tambiénArray.prototype.forEach().

TypedArray.prototype.includes()

Determina si un arreglo tipado incluye un determinado elemento, devolviendotrue ofalse según corresponda. Consulta tambiénArray.prototype.includes().

TypedArray.prototype.indexOf()

Devuelve el primer (mínimo) índice de un elemento dentro del arreglo igual al valor especificado, o-1 si no se encuentra ninguno. Consulta tambiénArray.prototype.indexOf().

TypedArray.prototype.join()

Une todos los elementos de un arreglo en una cadena. Consulta tambiénArray.prototype.join().

TypedArray.prototype.keys()

Devuelve un nuevoArray Iterator que contiene las claves para cada índice del arreglo. Consulta tambiénArray.prototype.keys().

TypedArray.prototype.lastIndexOf()

Devuelve el último (mayor) índice de un elemento dentro del arreglo igual al valor especificado, o-1 si no se encuentra ninguno. Consulta tambiénArray.prototype.lastIndexOf().

TypedArray.prototype.map()

Crea un nuevo arreglo con los resultados de llamar a una función proporcionada en cada elemento de este arreglo. Consulta tambiénArray.prototype.map().

TypedArray.prototype.reduce()

Aplica una función contra un acumulador y cada valor del arreglo (de izquierda a derecha) para reducirlo a un solo valor. Consulta tambiénArray.prototype.reduce().

TypedArray.prototype.reduceRight()

Aplica una función contra un acumulador y cada valor del arreglo (de derecha a izquierda) para reducirlo a un solo valor. Consulta tambiénArray.prototype.reduceRight().

TypedArray.prototype.reverse()

Invierte el orden de los elementos de un arreglo: el primero se convierte en el último y el último en el primero. Consulta tambiénArray.prototype.reverse().

TypedArray.prototype.set()

Almacena múltiples valores en el arreglo tipado, leyendo valores de entrada de un arreglo especificado.

TypedArray.prototype.slice()

Extrae una sección de un arreglo y devuelve un nuevo arreglo. Consulta tambiénArray.prototype.slice().

TypedArray.prototype.some()

Devuelvetrue si al menos un elemento de este arreglo satisface la función de prueba proporcionada. Consulta tambiénArray.prototype.some().

TypedArray.prototype.sort()

Ordena los elementos de un arreglo en su lugar y devuelve el arreglo. Consulta tambiénArray.prototype.sort().

TypedArray.prototype.subarray()

Devuelve un nuevoTypedArray del índice del elemento inicial y final dado.

TypedArray.prototype.values()

Devuelve un nuevo objetoArray Iterator que contiene los valores de cada índice del arreglo. Consulta tambiénArray.prototype.values().

TypedArray.prototype.toLocaleString()

Devuelve una cadena localizada que representa el arreglo y sus elementos. Consulta tambiénArray.prototype.toLocaleString().

TypedArray.prototype.toString()

Devuelve una cadena que representa el arreglo y sus elementos. Consulta tambiénArray.prototype.toString().

TypedArray.prototype[@@iterator]()

Devuelve un nuevo objetoArray Iterator que contiene los valores de cada índice del arreglo.

Ejemplos

Se requierenew

A partir de ECMAScript 2015, los constructoresTypedArray se deben construir con el operadornew. Llamar a un constructorTypedArray como una función sinnew arrojará unTypeError.

js
var dv = Int8Array([1, 2, 3]);// TypeError: llamar a un constructor Int8Array incorporado// sin new está prohibido
js
var dv = new Int8Array([1, 2, 3]);

Acceso a la propiedad

Puedes hacer referencia a elementos en el arreglo utilizando la sintaxis de índice de arreglo estándar (es decir, utilizando la notación entre corchetes). Sin embargo, obtener o establecer propiedades indexadas en arreglos tipados no buscará esta propiedad en la cadena de prototipos, incluso cuando los índices estén fuera de límites. Las propiedades indexadas consultarán elArrayBuffer y nunca mirarán las propiedades del objeto. Aún puedes usar propiedades con nombre, al igual que con todos los objetos.

js
// Configuración y obtención usando la sintaxis de arreglo estándarvar int16 = new Int16Array(2);int16[0] = 42;[parcial]console.log(0);// No se consultan las propiedades indexadas en los prototipos (Fx 25)Int8Array.prototype[20] = 'foo';(new Int8Array(32))[20]; // 0// incluso cuando está fuera del límiteInt8Array.prototype[20] = 'foo';(new Int8Array(8))[20]; // undefined// o con enteros negativosInt8Array.prototype[-1] = 'foo';(new Int8Array(8))[-1]; // undefined// Sin embargo, se permiten propiedades con nombre (Fx 30)Int8Array.prototype.foo = 'bar';(new Int8Array(32)).foo; // "bar"

Especificaciones

Specification
ECMAScript® 2026 Language Specification
# sec-typedarray-objects

Compatibilidad con navegadores

Ve también

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp