آرایه های نوع دار (Typed Arrays)
«آرایه نوع دار (Typed Array)» برای «داده دودویی (Binary)» است. طولش ثابت است و نوع اعضا هم ثابت می ماند. مثل جعبه تخم مرغ با خانه های هم اندازه؛ تعداد و اندازه عوض نمی شود.
شروع سریع: ساختن Uint8Array
با «سازنده (Constructor)» می سازیم. عدد ورودی یعنی تعداد بایت.
const myArr = new Uint8Array(5);
همچنین از آرایه معمولی، لیست عددی، یا متدهای کمکی می سازیم.
const a1 = new Uint8Array([0, 1, 2, 3, 4]);
const a2 = Uint8Array.of(0, 1, 2, 3, 4);
const a3 = Uint8Array.from([0, 1, 2, 3, 4]);
چرا از آرایه های نوع دار استفاده کنیم؟
این ساختار مستقیم روی حافظه خام است. بنابراین انتقال داده سریع تر می شود. برای WebGL، فایل ها، رسانه، و وب سوکت عالی است.
تفاوت با آرایه معمولی
- طول ثابت است و تغییر نمی کند.
- نوع اعضا محدود و یکسان است.
- نمایی از «ArrayBuffer» هستند.
اعداد 8 بیتی: Int8، Uint8، Uint8Clamped
برای بایت ها مناسب اند. نسخه «Clamped» بیرون از بازه را به 0 یا 255 می بَرد.
const s8 = new Int8Array(10);
const u8 = new Uint8Array(10);
const uc = new Uint8ClampedArray(10);
اعداد 16 بیتی: Int16 و Uint16
برای مقادیر بزرگ تر از بایت، اما هنوز کم حجم، مناسب اند.
const s16 = new Int16Array(10);
const u16 = new Uint16Array(10);
اعداد 32 بیتی: Int32 و Uint32
وقتی به بازه بزرگ و عملیات صحیح نیاز داری، از آن ها استفاده کن.
const s32 = new Int32Array(10);
const u32 = new Uint32Array(10);
اعداد 64 بیتی: BigInt64 و BigUint64
برای اعداد خیلی بزرگ از نوع «بیگ اینت (BigInt)» استفاده کن.
const b64 = new BigInt64Array(10);
const bu64 = new BigUint64Array(10);
اعداد اعشاری: Float16، Float32، Float64
برای محاسبات اعشاری به کار می روند. دقت ها متفاوت است.
const f16 = new Float16Array(10);
const f32 = new Float32Array(10);
const f64 = new Float64Array(10);
نکات مهم سازگاری و رفتار
نکته: آرایه نوع دار، آرایه معمولی نیست. Array.isArray() روی آن «false» می شود. متدهایی مثل push و pop پشتیبانی نمی شوند.
هشدار: وقتی مقدار خارج از بازه به Uint8ClampedArray بدهی، به 0 یا 255 گِرد می شود.
قدم های تمرینی
- یک
Uint8Arrayبساز. - چند عضو مقداردهی کن.
- تفاوت
Uint8ArrayوUint8ClampedArrayرا آزمایش کن. - یک
Float32Arrayبرای محاسبات اعشاری بساز.
مسیرهای پیشنهادی
برای ادامه، سر بزن به ثابت آرایه و مرجع آرایه. سپس با آرایه های نوع دار در پروژه ات تمرین کن.
جمع بندی سریع
- طول و نوع در Typed Array ثابت است.
- برای داده دودویی بسیار سریع است.
- متدهای آرایه معمولی را ندارد.
- نمایی از
ArrayBufferمحسوب می شود. - گزینه های 8، 16، 32، 64 بیتی دارد.