Εγχειρίδιο Αναφοράς Τύπου Τυπωμένων Μεταβλητών του 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

Μέθοδος / Προσαρμογή Περιγραφή
BYTES_PER_ELEMENT Αριθμός των μυριάδων που απαιτούνται για την αποθήκευση ενός στοιχείου.
fill() Μεταφορά ενός τιμής σε όλες τις στοιχεία.
find() Επιστροφή του πρώτου στοιχείου που ικανοποιεί την προϋπόθεση.
name Επιστροφή του ονόματος της τυπικής ακολουθίας.
of() Δημιουργία τυπικής ακολουθίας από ακολουθία.
some() Εάν ένα στοιχείο ικανοποιεί την προϋπόθεση, θα επιστρέψει true.

Uint8Array και Uint8ClampedArray

Η διαφορά μεταξύ Uint8Array και Uint8ClampedArray βρίσκεται στον τρόπο προσθήκης τιμών.

Αν οριστεί ένα στοιχείο από το Uint8ClampedArray εκτός του εύρους 0-255, θα θεωρηθεί ως 0 ή 255 ως προεπιλεγμένο.

Οι τυπικές ακολουθίες θα πάρουν μόνο τα πρώτα 8 δισκία.

Πλεονεκτήματα των τυπικών ακολουθιών

Οι τυπικές ακολουθίες παρέχουν ένα τρόπο επεξεργασίας δεδομένων δισκογραφίας, τόσο αποτελεσματικό όσο ένας αριθμητικός αλγόριθμος στο C.

Οι τυπικές ακολουθίες είναι αρχική μνήμη, οπότε το JavaScript μπορεί να τις μεταφέρει απευθείας σε οποιαδήποτε συνάρτηση χωρίς να χρειάζεται να μετατρέψει τα δεδομένα σε άλλη μορφή.

Οι τυπικές ακολουθίες είναι πολύ πιο γρήγορες από τις τυπικές ακολουθίες, χρησιμοποιούνται για να μεταφέρουν δεδομένα σε συνάρτησεις που μπορούν να χρησιμοποιήσουν αρχαία δεδομένα δισκογραφίας (παιχνίδια υπολογιστών, WebGL, Κανβάς, αρχείο API, μέσο API).

Η συσκευή περιηγητή υποστηρίζει τυπικές ακολουθίες

Πρότυπο Επεξεργασίας HTTP

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

Εξемпλοποιημένο Κανβάς

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;

Υποστήριξη προγράμματος περιήγησης

typedArray Είναι χαρακτηριστικά ECMAScript6 (ES6).

Όλα τα σύγχρονα προγράμματα περιήγησης υποστηρίζουν το ES6 (JavaScript 2015).

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
Ναι Ναι Ναι Ναι Ναι

O Internet Explorer 11 (και οι προηγούμενες εκδόσεις) δεν υποστηρίζει typedArray.