JavaScript Typed Array Referentiemanual

JavaScript 类型化数组

在 Javascript 中,类型化数组是二进制数据的类似数组的缓冲区。

不存在名为 TypedArray 的 JavaScript 属性或对象,但属性和方法可以与类型化数组对象一起使用:

实例

const myArr = new Int8Array(10);

亲自试一试

类型化数组的对象

对象 数据类型 范围
Int8Array 有符号整数(字节) -128/127
Uint8Array 无符号整数(八位字节) 0/255
Uint8ClampedArray 无符号整数(八位字节) 0/255
Int16Array 短整数 -32768/32767
Uint16Array 无符号短整数 0/65535
Int32Array 有符号长整数 -231/231-1
Uint32Array 无符号长整数 0/232
Float32Array 浮点 - 7 位有效数字 1.2x10-38/3.4x1038
Float64Array 双精度浮点 - 16 位有效数字 5.0x10-324/1.8x10308
BigInt64Array 有符号大整数 -263/263-1
BigUint64Array Ongeveerige grootte van een groot getal 0/264

Verklaring

Geünnistte arrays zijn geen arrays.

De isArray() van een geünnistte array retourneert false.

Geünnistte arrays ondersteunen veel arraymethoden niet (zoals push en pop).

Geünnistte arrays zijn objecten die lijken op arrays, gebruikt om binair gegevens in het geheugen op te slaan.

Geünnistte Array methoden en eigenschappen

Methode / Eigenschap Beschrijving
BYTES_PER_ELEMENT Berekent de eigenschap van het aantal bytes dat nodig is om een element op te slaan.
fill() Vul alle elementen met een waarde.
find() Retourneert het eerste element dat aan de voorwaarde voldoet.
name Retourneert de naam van de geünnistte array.
of() Maak een geünnistte array van een array.
some() Retourneert true als een element aan de voorwaarde voldoet.

Uint8Array tegenover Uint8ClampedArray

Het verschil tussen Uint8Array en Uint8ClampedArray ligt in de manier waarop waarden worden toegevoegd.

Als een element van een Uint8ClampedArray buiten het bereik van 0-255 wordt ingesteld, wordt het standaard ingesteld op 0 of 255.

Geünnistte arrays nemen alleen de eerste 8 bits van de waarde aan.

Voordelen van geünnistte arrays

Geünnistte arrays bieden een manier om binair gegevens te verwerken, net zo effectief als arrays in C.

Geünnistte arrays zijn oorspronkelijke geheugen, dus kan JavaScript ze direct doorgeven aan elke functie zonder de gegevens om te zetten naar een andere representatie.

Geünnistte arrays zijn veel sneller dan gewone arrays en worden gebruikt om gegevens door te geven aan functies die oorspronkelijke binair gegevens kunnen gebruiken (computerspellen, WebGL, Canvas, bestands API, media API).

Browser API ondersteunt geünnistte arrays

Fetch API voorbeeld

fetch(url)
.then(request => request.arrayBuffer())
.then(arrayBuffer =>...);

Canvas voorbeeld

const canvas = document.getElementById('my_canvas');
const context = canvas.getContext('2d');
const imageData = context.getImageData(0, 0, canvas.width, canvas.height);
const uint8ClampedArray = imageData.data;

Browser Support

typedArray It is an ECMAScript6 (ES6) feature.

All modern browsers support ES6 (JavaScript 2015).

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
Yes Yes Yes Yes Yes

Internet Explorer 11 (and earlier versions) does not support typedArray.