Skip to content

JavaScript Tiplangan Massivlar (Typed Arrays)

Tiplangan massivlar (Typed Arrays) — bu JavaScript-da binar ma'lumotlar (binary data) bilan ishlash uchun mo'ljallangan maxsus massivlardir.


Tiplangan massivlar nima?

Oddiy massivlardan farqli o'laroq, tiplangan massivlar:

  1. O'zgarmas uzunlikka (fixed length) ega.
  2. Faqat ma'lum bir tipdagi (masalan, faqat 8-bitli butun sonlar) ma'lumotlarni saqlaydi.
  3. Xotiradan (RAM) juda samarali foydalanadi. :::

Yaratish usullari

Tiplangan massivlarni bir necha usul bilan yaratish mumkin:

1. Bo'sh massiv yaratish

Uzunligi 5 bayt bo'lgan massiv (barcha elementlari 0 bo'ladi):

js
const myArr = new Uint8Array(5)

2. Oddiy massivdan yaratish

js
const myArr = new Uint8Array([0, 1, 2, 3, 4])

3. Qiymatlar ro'yxatidan yaratish

js
const myArr = Uint8Array.of(0, 1, 2, 3, 4)

Nima uchun tiplangan massivlar kerak?

Tiplangan massivlar binar ma'lumotlarni C tilidagidek samarali boshqarish imkonini beradi. Ular quyidagi sohalarda juda muhim:

  • WebGL va Canvas: Grafika va tasvirlarni tezkor qayta ishlash.
  • File API: Mahalliy fayllarni tez o'qish va yozish.
  • Media API: Audio va video ma'lumotlarni oqim (stream) ko'rinishida boshqarish.
  • WebSockets: Tarmoq orqali binar ma'lumotlarni samarali uzatish.

Tiplangan massiv turlari

JavaScript-da har bir ma'lumot turi uchun alohida massiv tipi mavjud:

NomiDiapazon (Min / Max)Hajmi (Bayt)Turi
Int8Array-128 / 1271Ishorali 8-bit butun son
Uint8Array0 / 2551Ishorasiz 8-bit butun son
Uint8ClampedArray0 / 25518-bit (ranglar uchun cheklangan)
Int16Array-32768 / 327672Ishorali 16-bit butun son
Uint16Array0 / 655352Ishorasiz 16-bit butun son
Int32Array-2.1 mlrd / 2.1 mlrd4Ishorali 32-bit butun son
Uint32Array0 / 4.2 mlrd4Ishorasiz 32-bit butun son
Float32Array-3.4e38 / 3.4e38432-bit haqiqiy son
Float64Array-1.8e308 / 1.8e308864-bit haqiqiy son

Uint8Array va Uint8ClampedArray farqi

Bu ikki massiv ham 0 va 255 oralig'idagi sonlarni saqlaydi. Farqi shundaki, agar siz 255-dan katta qiymat bermoqchi bo'lsangiz:

  • Uint8Array: Baytlarning faqat oxirgi 8-bitini oladi (aylanma hisob).
  • Uint8ClampedArray: Qiymatni chegaralaydi (agar 300 bo'lsa, uni 255 deb qabul qiladi). Bu xususiyat ranglar (RGBA) bilan ishlashda juda qulay.

Muhim eslatma

Tiplangan massivlar oddiy massiv (Array) emas!

  • Array.isArray(typedArray) har doim false qaytaradi.
  • Ular o'zgarmas uzunlikda bo'lgani uchun push() yoki pop() metodlari mavjud emas.

Keyingi darslar

Tiplangan massivlar bilan ishlashni davom ettiring: