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

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

مثال Fetch API

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
بله بله بله بله بله

Internet Explorer 11 (و نسخه‌های قدیمی‌تر) از آن پشتیبانی نمی‌کند typedArray.