--- title: ArrayBuffer slug: Web/JavaScript/Reference/Global_Objects/ArrayBuffer tags: - ArrayBuffer - JavaScript - Konstruktor - TypedArrays translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer original_slug: Web/JavaScript/Referencje/Obiekty/ArrayBuffer ---
Objekt ArrayBuffer
reprezentuje buffer z surowymi danymi binarnymi o niezmiennej długości. Nie możesz bezpośrednio wpływać na zawartość obiektu ArrayBuffer
, możesz natomiast stworzyć jeden z obiektów typedArray
lub obiekt {{jsxref("DataView")}} reprezentujący buffer w specjalnym formacie i używać tego obiektu do odczytu oraz zapisu treści buffera.
new ArrayBuffer(length)
(length)
Nowy obiekt ArrayBuffer
o określonym rozmiarze. Jego wartości początkowe wynoszą 0.
{{jsxref("RangeError")}} pojawi się, jeśli długość (length
) jest większa niż {{jsxref("Number.MAX_SAFE_INTEGER")}} (>= 2 ** 53) lub ujemna.
Konstruktor ArrayBuffer
tworzy nowy ArrayBuffer
z podanej długości (length
) w bajtach.
ArrayBuffer.length
ArrayBuffer
, której wartość wynosi 1.ArrayBuffer
.true
, jeśli arg
jest jednym z widoków ArrayBuffer
, jak obiekty typedArray
lub {{jsxref("DataView")}}. W innych przypadkach zwraca false
.ArrayBuffer
, którego zawartości są pobrane z danych oldBuffer
. Następnie zostaje skrócony lub przedłużony od 0 przez newByteLength
.Instancje ArrayBuffer
Wszystkie instancje ArrayBuffer
dziedziczą z {{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')}}
W niniejszym przykładzie tworzymy 8-bajtowy buffer z widokiem {{jsxref("Global_Objects/Int32Array", "Int32Array")}} odnoszącym się do buffera:
var buffer = new ArrayBuffer(8); var view = new Int32Array(buffer);
Specyfikacja | Status | Komentarz |
---|---|---|
{{SpecName('Typed Array')}} | {{Spec2('Typed Array')}} | Zastępiony przez ECMAScript 6. |
{{SpecName('ES6', '#sec-arraybuffer-constructor', 'ArrayBuffer')}} | {{Spec2('ES6')}} | Definicja początkowa w standardzie ECMA. Zgłasza, że wymagany jest new . |
{{SpecName('ESDraft', '#sec-arraybuffer-constructor', 'ArrayBuffer')}} | {{Spec2('ESDraft')}} |
{{CompatibilityTable}}
Cecha | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Wsparcie podstawowe | 7.0 | {{CompatGeckoDesktop("2")}} | 10 | 11.6 | 5.1 |
ArrayBuffer() bez odsyłacza new |
{{CompatUnknown}} | {{CompatGeckoDesktop("44")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
ArrayBuffer.slice() {{non-standard_inline}} |
{{CompatNo}} | {{CompatVersionUnknown}} {{CompatNo}} {{CompatGeckoDesktop("53")}} |
{{CompatNo}} | {{CompatNo}} | {{CompatUnknown}} |
Cecha | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Wsparcie podstawowe | 4.0 | {{CompatVersionUnknown}} | {{CompatGeckoMobile("2")}} | 10 | 11.6 | 4.2 |
ArrayBuffer() bez odsyłacza new |
{{CompatUnknown}} | {{CompatUnknown}} | {{CompatGeckoMobile("44")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
ArrayBuffer.slice() {{non-standard_inline}} |
{{CompatNo}} | {{CompatNo}} | {{CompatVersionUnknown}} {{CompatNo}} {{CompatGeckoMobile("53")}} |
{{CompatNo}} | {{CompatNo}} | {{CompatUnknown}} |
Od ECMAScript 2015 kontruktory ArrayBuffer
muszą być tworzone poprzez operator {{jsxref("Operators/new", "new")}}. Wywoływanie kontruktora ArrayBuffer jako funkcji bez new
zaskutkuje od teraz pojawieniem się {{jsxref("TypeError")}}.
var dv = ArrayBuffer(10); // TypeError: calling a builtin ArrayBuffer constructor // without new is forbidden
var dv = new ArrayBuffer(10);