--- title: ArrayBuffer slug: Web/JavaScript/Reference/Global_Objects/ArrayBuffer tags: - ArrayBuffer - Constructor - JavaScript - TypedArrays translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer original_slug: Web/JavaScript/Referencia/Objetos_globales/ArrayBuffer ---
{{JSRef}}

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 {{jsxref("DataView")}} que representa el buffer en un formato especifico, y usarlo para leer y escribir el contenido del buffer.

{{EmbedInteractiveExample("pages/js/arraybuffer-constructor.html")}}

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 {{jsxref("RangeError")}} si la longitud (length) es mayor que {{jsxref("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.
{{jsxref("ArrayBuffer.@@species", "get ArrayBuffer[@@species]")}}
La función de constructor que se usa para crear objetos derivados.
{{jsxref("ArrayBuffer.prototype")}}
Permite añadir propiedades a todos los objetos ArrayBuffer.

Métodos

{{jsxref("ArrayBuffer.isView", "ArrayBuffer.isView(arg)")}}
Devuelve true si arg es una de las vistas de ArrayBuffer, como pueden ser los arrays tipados o un {{jsxref("DataView")}}. Sino devuelve false.
{{jsxref("ArrayBuffer.transfer", "ArrayBuffer.transfer(oldBuffer [, newByteLength])")}} {{experimental_inline}}
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 {{jsxref("ArrayBuffer.prototype")}}.

Propiedades

{{page('es/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Propiedades')}}

Métodos

{{page('es/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Métodos')}}

{{jsxref("ArrayBuffer.slice()")}} {{non-standard_inline}}
Tiene la misma funcionalidad que {{jsxref("ArrayBuffer.prototype.slice()")}}.

Ejemplo

En este ejemplo creamos un buffer de 8-bytes con una vista del tipo {{jsxref("Global_Objects/Int32Array", "Int32Array")}} referenciando dicho buffer:

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

Especificaciones

Especificación Estado Comentario
{{SpecName('Typed Array')}} {{Spec2('Typed Array')}} Sustituida por ECMAScript 6.
{{SpecName('ES6', '#sec-arraybuffer-constructor', 'ArrayBuffer')}} {{Spec2('ES6')}} Definición inicial en un estándar ECMA. Especifica que new es obligatorio.
{{SpecName('ESDraft', '#sec-arraybuffer-constructor', 'ArrayBuffer')}} {{Spec2('ESDraft')}}  

Compatibilidad con navegadores

{{Compat("javascript.builtins.ArrayBuffer")}}

Notas de compatibilidad

Desde el ECMAScript 2015, los constructores de ArrayBuffer requieren ser instanciados usando el operador {{jsxref("Operators/new", "new")}}. Ejecutar el constructor de un ArrayBuffer como una funciónsin el new, lanzará un {{jsxref("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