Mafaa ya Matumizi ya Matukio ya JavaScript

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 无符号大整数 0/264

说明

类型化数组不是数组。

类型化数组上的 isArray() 返回 false。

类型化数组不支持许多数组方法(如 push 和 pop)。

类型化数组是类似数组的对象,用于在内存中存储二进制数据。

Typed Array 方法和属性

Method / Property Inaonekana kama
BYTES_PER_ELEMENT Inaelewa kama upeo wa bayi kwa kila elementi.
fill() Kuamua upeo wa kila elementi kwa thamani moja.
find() Inarudi elementi ya kwanza inayofikirika.
name Inarudi jina la vishawishi vya ujumbe.
of() Kuunda vishawishi vya ujumbe kutoka kwa orodha.
some() Ikiwa elementi inekadiriwa, inarudi true.

Uint8Array na Uint8ClampedArray

Kati ya Uint8Array na Uint8ClampedArray kinaonyesha ukweli wa kuongeza thamani.

Ikiwa inaelewa kwa kumaliza elementi kwenye Uint8ClampedArray kwa upeo binafsi ya 0-255, inaingia kwa chaguo cha chaguo cha 0 au 255.

Vishawishi vya ujumbe vinapotaka kwa upeo wa 8 pekee.

Faa vya vishawishi vya ujumbe

Vishawishi vya ujumbe vinapokubaliana na ukaguzi wa data ya hali ya kwanza kama kimeendeshwa katika C.

Vishawishi vya ujumbe ni memori ya hali ya kwanza, kwa hivyo JavaScript inaweza kumpatia kwa funzio yoyote kwa sababu ya data inayokusaidia kwa kusaidia kwa sababu ya ujumbe zaidi.

Vishawishi vya ujumbe vya ujumbe vinavyofa sana kwa vishawishi vya orodha, ikilinganisha data inayokusaidia kwa kufikia funzio ambazo zinahitaji data ya hali ya kwanza (michezo kompyuta, WebGL, Canvas, API ya file, API ya media).

Vifaa vya API ya mifano huzushiwa kwa vishawishi vya ujumbe

Fetch API miongo

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

Canvas miongo

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;

Mwongozo wa kifaa kina

typedArray Ni muhimu wa ECMAScript6 (ES6).

Wote vitu vya kina vya kwanza vya viwanda vya kila siku vinatuma ES6 (JavaScript 2015).

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
Ndiyo Ndiyo Ndiyo Ndiyo Ndiyo

Internet Explorer 11 (na zaidi ya kuzingatia) haionekani typedArray.