--- 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)
length
Un 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.length
ArrayBuffer
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);