--- title: ArrayBuffer slug: Web/JavaScript/Reference/Global_Objects/ArrayBuffer tags: - ArrayBuffer - Constructor - JavaScript - TypedArrays translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer ---
{{JSRef}}
O objeto ArrayBuffer é um tipo de dado usado para representar um genérico, buffer de dados binários de tamanho fixo. Você não pode manipular diretamente os conteúdos de um ArrayBuffer; em vez disso, você cria um objeto ArrayBufferView que representa o buffer em um formato específico, e usa para ler e escrever os conteúdos do buffer.
{{EmbedInteractiveExample("pages/js/arraybuffer-constructor.html")}}
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
new ArrayBuffer(length)
lengthA new ArrayBuffer object of the specified size. Its contents are initialized to 0.
A {{jsxref("RangeError")}} is thrown if the length is larger than {{jsxref("Number.MAX_SAFE_INTEGER")}} (>= 2 ** 53) or negative.
The ArrayBuffer constructor creates a new ArrayBuffer of the given length in bytes.
ArrayBuffer.lengthArrayBuffer constructor's length property whose value is 1.ArrayBuffer objects.true if arg is one of the ArrayBuffer views, such as typed array objects or a {{jsxref("DataView")}}. Returns false otherwise.Returns a new ArrayBuffer whose contents are taken from the oldBuffer's data and then is either truncated or zero-extended by newByteLength.
All ArrayBuffer instances inherit from {{jsxref("ArrayBuffer.prototype")}}.
{{page('en-US/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Properties')}}
{{page('en-US/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Methods')}}
In this example, we create a 8-byte buffer with a {{jsxref("Global_Objects/Int32Array", "Int32Array")}} view referring to the buffer:
var buffer = new ArrayBuffer(8);
var view = new Int32Array(buffer);
| Especificação | Status | Comentário |
|---|---|---|
| {{SpecName('Typed Array')}} | {{Spec2('Typed Array')}} | Substituído pelo ECMAScript 6 |
| {{SpecName('ES6', '#sec-arraybuffer-constructor', 'ArrayBuffer')}} | {{Spec2('ES6')}} | Definição inicial no ECMA standard. Specified that new is required. |
| {{SpecName('ESDraft', '#sec-arraybuffer-constructor', 'ArrayBuffer')}} | {{Spec2('ESDraft')}} |
{{Compat("javascript.builtins.ArrayBuffer")}}
Starting with ECMAScript 2015, ArrayBuffer constructors require to be constructed with a {{jsxref("Operators/new", "new")}} operator. Calling an ArrayBuffer constructor as a function without new, will throw a {{jsxref("TypeError")}} from now on.
var dv = ArrayBuffer(10); // TypedError: calling a builtin ArrayBuffer constructor // without new is forbidden
var dv = new ArrayBuffer(10);