--- 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 ---
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")}}
new ArrayBuffer(length)
lengthUn nuevo objeto ArrayBuffer de tamaño específico. Su contenido se inicializa a cero.
Se lanza un {{jsxref("RangeError")}} si la longitud (length) es mayor que {{jsxref("Number.MAX_SAFE_INTEGER")}} (> = 2 ** 53) o negativa.
El constructor de ArrayBuffer crea un nuevo ArrayBuffer del tamaño especificado en bytes.
ArrayBuffer.lengthArrayBuffer cuyo valor es 1.ArrayBuffer.true si arg es una de las vistas de ArrayBuffer, como pueden ser los arrays tipados o un {{jsxref("DataView")}}. Sino devuelve false.ArrayBuffer cuyo contenido se toma de los datos de oldBuffer y luego es truncado o extendido por cero por newByteLength.Todas las instancias de ArrayBuffer heredan de {{jsxref("ArrayBuffer.prototype")}}.
{{page('es/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Propiedades')}}
{{page('es/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Métodos')}}
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);
| 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')}} |
{{Compat("javascript.builtins.ArrayBuffer")}}
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);