El objeto ArrayBuffer se usa para representar un buffer genérico, de datos binarios crudos (raw) con una longitud específica. No se puede manipular directamente el contenido de un ArrayBuffer; sin embargo, puedes crear uno de los arrays tipados o un objeto DataView que representa el buffer en un formato especifico, y usarlo para leer y escribir el contenido del buffer.

Sintaxis

new ArrayBuffer(length)

Parámetros

length
El tamaño en bytes, del array buffer que quieres crear.

Valor de retorno

Un nuevo objeto ArrayBuffer de tamaño específico. Su contenido se inicializa a cero.

Excepciones

Se lanza un RangeError si la longitud (length) es mayor que Number.MAX_SAFE_INTEGER (> = 2 ** 53) o negativa.

Descripción

El constructor de ArrayBuffer crea un nuevo ArrayBuffer del tamaño especificado en bytes.

Obtener un array buffer sobre datos existentes

Propiedades

ArrayBuffer.length
El tamaño de constructor de ArrayBuffer cuyo valor es 1.
get ArrayBuffer[@@species]
La función de constructor que se usa para crear objetos derivados.
ArrayBuffer.prototype
Permite añadir propiedades a todos los objetos ArrayBuffer.

Métodos

ArrayBuffer.isView(arg)
Devuelve true si arg es una de las vistas de ArrayBuffer, como pueden ser los arrays tipados o un DataView. Sino devuelve false.
ArrayBuffer.transfer(oldBuffer [, newByteLength])
Devuelve un nuevo ArrayBuffer cuyo contenido se toma de los datos de oldBuffer y luego es truncado o extendido por cero por newByteLength.

Instancias

Todas las instancias de ArrayBuffer heredan de ArrayBuffer.prototype.

Propiedades

ArrayBuffer.prototype.constructor
Especifica la función que se encarga de crear el prototipo del objeto. El valor inicial es el constructor incluido en el estándar ArrayBuffer.
ArrayBuffer.prototype.byteLength Read only
El tamaño, en bytes, del array. Este valor se establece al construir el objeto y no se puede modificar. Sólo lectura.

Métodos

ArrayBuffer.prototype.slice()
Retorna un nuevo ArrayBuffer cuyo contenido es una copia los bytes de este ArrayBuffer desde begin, incluido, hasta  end, no incluido. Si beginend son negativos, éstos hacen referencia a un índice que comienza a partir del final del array.

ArrayBuffer.slice()
Tiene la misma funcionalidad que ArrayBuffer.prototype.slice().

Ejemplo

En este ejemplo creamos un buffer de 8-bytes con una vista del tipo Int32Array referenciando dicho buffer:

var buffer = new ArrayBuffer(8);
var view   = new Int32Array(buffer);

Especificaciones

Especificación Estado Comentario
Typed Array Specification Obsolete Sustituida por ECMAScript 6.
ECMAScript 2015 (6th Edition, ECMA-262)
La definición de 'ArrayBuffer' en esta especificación.
Standard Definición inicial en un estándar ECMA. Especifica que new es obligatorio.
ECMAScript Latest Draft (ECMA-262)
La definición de 'ArrayBuffer' en esta especificación.
Draft  

Compatibilidad con navegadores

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Soporte básicoChrome Soporte completo 7Edge Soporte completo SiFirefox Soporte completo 4IE Soporte completo 10Opera Soporte completo 11.6Safari Soporte completo 5.1WebView Android Soporte completo 4Chrome Android Soporte completo SiEdge Mobile Soporte completo SiFirefox Android Soporte completo 4Opera Android Soporte completo 11.6Safari iOS Soporte completo 4.2Samsung Internet Android Soporte completo Sinodejs Soporte completo Si
ArrayBuffer() without new throwsChrome Soporte completo SiEdge Soporte completo SiFirefox Soporte completo 44IE Sin soporte NoOpera Soporte completo SiSafari ? WebView Android ? Chrome Android ? Edge Mobile ? Firefox Android Soporte completo 44Opera Android ? Safari iOS ? Samsung Internet Android ? nodejs Soporte completo 0.12
byteLengthChrome Soporte completo 7Edge Soporte completo SiFirefox Soporte completo 4IE Soporte completo 10Opera Soporte completo 11.6Safari Soporte completo 5.1WebView Android Soporte completo 4Chrome Android Soporte completo SiEdge Mobile Soporte completo SiFirefox Android Soporte completo 4Opera Android Soporte completo 11.6Safari iOS Soporte completo 4.2Samsung Internet Android Soporte completo Sinodejs Soporte completo Si
isViewChrome Soporte completo SiEdge Soporte completo SiFirefox Soporte completo 29IE Soporte completo 11Opera Soporte completo SiSafari Soporte completo SiWebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile Soporte completo SiFirefox Android Soporte completo 29Opera Android Soporte completo SiSafari iOS Soporte completo SiSamsung Internet Android Soporte completo Sinodejs Soporte completo Si
prototypeChrome Soporte completo 7Edge Soporte completo SiFirefox Soporte completo 4IE Soporte completo 10Opera Soporte completo 11.6Safari Soporte completo 5.1WebView Android Soporte completo 4Chrome Android Soporte completo SiEdge Mobile Soporte completo SiFirefox Android Soporte completo 4Opera Android Soporte completo 11.6Safari iOS Soporte completo 4.2Samsung Internet Android Soporte completo Sinodejs Soporte completo Si
sliceChrome Soporte completo SiEdge Soporte completo SiFirefox Soporte completo 12
Notas
Soporte completo 12
Notas
Notas The non-standard ArrayBuffer.slice() method has been removed in Firefox 53 (but the standardized version ArrayBuffer.prototype.slice() is kept.
IE Soporte completo 11Opera Soporte completo SiSafari Soporte completo 6WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile Soporte completo SiFirefox Android Soporte completo 14
Notas
Soporte completo 14
Notas
Notas The non-standard ArrayBuffer.slice() method has been removed in Firefox 53 (but the standardized version ArrayBuffer.prototype.slice() is kept.
Opera Android Soporte completo SiSafari iOS Soporte completo 6Samsung Internet Android Soporte completo Sinodejs Soporte completo Si
transfer
ExperimentalNo estándar
Chrome Sin soporte NoEdge Sin soporte NoFirefox Sin soporte NoIE Sin soporte NoOpera Sin soporte NoSafari Sin soporte NoWebView Android Sin soporte NoChrome Android Sin soporte NoEdge Mobile Sin soporte NoFirefox Android Sin soporte NoOpera Android Sin soporte NoSafari iOS Sin soporte NoSamsung Internet Android Sin soporte Nonodejs Sin soporte No
@@speciesChrome ? Edge ? Firefox Soporte completo 48IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Edge Mobile ? Firefox Android Soporte completo 48Opera Android ? Safari iOS ? Samsung Internet Android ? nodejs Soporte completo 6.5.0
Soporte completo 6.5.0
Soporte completo 6.0.0
Deshabilitado
Deshabilitado From version 6.0.0: this feature is behind the --harmony runtime flag.

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte
Compatibility unknown  
Compatibility unknown
Experimental. Esperar que el comportamiento cambie en el futuro.
Experimental. Esperar que el comportamiento cambie en el futuro.
No estandar . Esperar poco soporte entre navegadores.
No estandar . Esperar poco soporte entre navegadores.
Ver notas de implementación.
Ver notas de implementación.
El usuario debe de habilitar explícitamente esta característica.
El usuario debe de habilitar explícitamente esta característica.

Notas de compatibilidad

Desde el ECMAScript 2015, los constructores de ArrayBuffer requieren ser instanciados usando el operador new. Ejecutar el constructor de un ArrayBuffer como una funciónsin el new, lanzará un TypeError de ahora en adelante.

var dv = ArrayBuffer(10);
// TypeError: llamar al constructor ArrayBuffer sin new está prohibido
var dv = new ArrayBuffer(10);

Ver también

Etiquetas y colaboradores del documento

Colaboradores en esta página: lajaso, joseluisq, mlealvillarreal, AzazelN28, tamat
Última actualización por: lajaso,