JavaScript typerade arrayer referenshandbok

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 Osignerad stor tal 0/264

Förklaring

Typpade arrayer är inte arrayer.

isArray() på typpade arrayer returnerar false.

Typpade arrayer stödjer inte många av arrayernas metoder (som push och pop).

Typpade arrayer är objekt som liknar arrayer och används för att lagra binär data i minnet.

Metoder och egenskaper för Typed Array

Metod / Egenskap Beskrivning
BYTES_PER_ELEMENT Beräkna egenskapen som anger antalet byte som används för att lagra ett element.
fill() Fyll alla element med ett värde.
find() Returnera den första element som uppfyller villkoret.
name Returnera namnet på typpade arrayen.
of() Skapa en typpad array från en array.
some() Om en element uppfyller villkoret, returneras true.

Uint8Array jämfört med Uint8ClampedArray

Skillnaden mellan Uint8Array och Uint8ClampedArray ligger i hur värden läggs till.

Om en element i Uint8ClampedArray sätts till ett värde utanför intervallet 0-255, kommer det att standardiseras till 0 eller 255.

Typpade arrayer tar bara de första 8 bitarna av värdena.

Fördelarna med typpade arrayer

Typpade arrayer erbjuder ett sätt att hantera binär data som är lika effektivt som att arbeta med arrayer i C.

Typpade arrayer är originalminne, så JavaScript kan skicka dem direkt till vilken funktion som helst utan att behöva konvertera data till en annan representation.

Typpade arrayer är mycket snabbare än vanliga arrayer och används för att överföra data till funktioner som kan använda rå binär data (datorspel, WebGL, Canvas, fil API, media API).

Webbläsarens API stödjer typpade arrayer

Fetch API exempel

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

Canvas exempel

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;

Webbläsarstöd

typedArray Det är ECMAScript6 (ES6) egenskaper.

Alla moderna webbläsare stöder ES6 (JavaScript 2015).

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
Ja Ja Ja Ja Ja

Internet Explorer 11 (och tidigare versioner) stöder inte typedArray.