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