دستورالعمل مرجع آرایه‌های نوعی 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) پشتیبانی نمی‌کنند.

آرایه‌های نوع‌دار اشیائی شبیه به آرایه هستند که برای ذخیره داده‌های باینری در حافظه استفاده می‌شوند.

روش‌ها و ویژگی‌های آرایه‌های نوع‌دار

روش / ویژگی وصف
BYTES_PER_ELEMENT ویژگی محاسبه تعداد بایتی مورد نیاز برای ذخیره یک عنصر را برمی‌گرداند.
fill() تمام عناصر را با یک مقدار پر می‌کند.
find() اولین عنصری که از شرایطی برخوردار است را برمی‌گرداند.
name نام آرایه‌های نوع‌دار را برمی‌گرداند.
of() آرایه‌ای برای ایجاد آرایه‌های نوع‌دار استفاده می‌شود.
some() اگر یک عنصر از شرایطی برخوردار باشد، درخواست true را برمی‌گرداند.

Uint8Array در مقایسه با Uint8ClampedArray

تفاوت بین Uint8Array و Uint8ClampedArray در نحوه اضافه کردن مقادیر است.

اگر یک عنصر از Uint8ClampedArray را به خارج از محدوده 0-255 تنظیم کنید، مقدار پیش‌فرض آن 0 یا 255 خواهد بود.

آرایه‌های نوع‌دار فقط از 8 بیتی اول استفاده می‌کنند.

مزایای آرایه‌های نوع‌دار

آرایه‌های نوع‌دار روشی برای پردازش داده‌های باینری ارائه می‌دهند که مانند کار با آرایه‌ها در C کارآمد است.

آرایه‌های نوع‌دار حافظه اولیه هستند، بنابراین JavaScript می‌تواند آن‌ها را مستقیماً به هر تابعی بدهد بدون اینکه داده‌ها به نوع دیگری تبدیل شوند.

آرایه‌های نوع‌دار خیلی سریع‌تر از آرایه‌های معمولی هستند و برای انتقال داده‌ها به تابع‌هایی که می‌توانند داده‌های باینری اولیه را استفاده کنند استفاده می‌شوند (بازی‌های کامپیوتری، WebGL، Canvas، API فایل، API رسانه).

مرورگر API از نوع آرایه‌های نوع‌دار پشتیبانی می‌کند

Fetch API نمونه

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

Canvas نمونه

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

براوزر سپورٹ

typedArray یہ ECMAScript6 (ES6) کی خصوصیات ہیں

تمام جدید براوزرز نے ES6 (JavaScript 2015) کو سپورٹ کیا ہے

چروم ایج فائرفاکس سافری آپریا
چروم ایج فائرفاکس سافری آپریا
Yes Yes Yes Yes Yes

اینٹرنیشنل ایکسپلورر 11 (اور اس سے پہلے کی نسلیں) نہیں سپورٹ کرتی ہیں typedArray.