Ma'lumot turlari
JavaScript'da qiymatlar har doim ma'lum bir turga (type) tegishli bo'ladi. Masalan, matn yoki son. Jami 8 ta asosiy ma'lumot turi mavjud. Ushbu darsda ular bilan umumiy tanishamiz.
JavaScript โ dinamik tildir
JavaScript'da bir o'zgaruvchi vaqt o'tishi bilan turli tipdagi ma'lumotlarni saqlashi mumkin. Bunday tillar dinamik tipli (dynamically typed) deb ataladi:
Bu yerda message avval matn, keyin son bo'ldi โ hech qanday xatosiz. Endi 8 ta turni birma-bir ko'rib chiqamiz.
1. Number (son)
number turi butun va kasr sonlarni ifodalaydi. Sonlar ustida ko'plab amallar bajarish mumkin: qo'shish (+), ayirish (-), ko'paytirish (*), bo'lish (/) va boshqalar.
Oddiy sonlardan tashqari maxsus son qiymatlari ham bor: Infinity (cheksizlik), -Infinity va NaN (Not a Number โ noto'g'ri matematik amal natijasi).
2. BigInt (katta butun son)
Oddiy number turi juda katta sonlarni aniq saqlay olmaydi (taxminan 2 dan 53-darajagacha bo'lgan chegara bor). Bunday hollarda bigint turi ishlatiladi. BigInt qiymati son oxiriga n qo'yish orqali yaratiladi:
3. String (matn)
string โ bu matn. U tirnoqlar ichiga olinadi. JavaScript'da uch xil tirnoq bor:
- Ikki tirnoq:
"Salom"; - Bitta tirnoq:
'Salom'; - Teskari tirnoq (backtick): matn ichiga o'zgaruvchi qo'shishga imkon beradi.
${...} orqali o'zgaruvchi va ifodalar joylashtiriladi. Buni keyingi boblarda ko'ramiz.4. Boolean (mantiqiy tur)
boolean turining faqat ikkita qiymati bor: true (rost) va false (yolg'on). U odatda "ha/yo'q" tipidagi qiymatlarni saqlash uchun ishlatiladi:
5. null (bo'sh qiymat)
null turi faqat bitta null qiymatiga ega. U "hech narsa", "bo'sh" yoki "noma'lum qiymat" ma'nosini bildiradi:
null boshqa tillardagi kabi "mavjud bo'lmagan obyektga havola" emas. Bu shunchaki "bo'sh" yoki "qiymat yo'q" degan maxsus qiymat.6. undefined (aniqlanmagan)
undefined turi ham faqat bitta undefined qiymatiga ega. U "qiymat berilmagan" degan ma'noni bildiradi. Agar o'zgaruvchi e'lon qilinsa-yu, unga qiymat berilmasa, uning qiymati avtomatik undefined bo'ladi:
null โ dasturchi tomonidan qo'yiladigan "bo'sh" qiymat. undefined โ esa "umuman qiymat berilmagan" degani. Odatda o'zgaruvchiga undefined ni qo'lda bermaymiz โ bo'shligini bildirish uchun null ishlatamiz.7. Object (obyekt)
Yuqoridagi turlarning barchasi oddiy (primitive) deb ataladi, chunki ularning qiymatlari bitta narsani saqlaydi. object turi esa boshqacha โ u ma'lumotlar to'plamini va murakkabroq tuzilmalarni saqlaydi.
Obyektlar shu qadar muhim va keng qamrovliki, ularga alohida boblar bag'ishlangan. Hozircha shuni bilib qo'ying: obyekt โ bu nomlangan qiymatlar to'plami.
8. Symbol (simvol)
symbol turi obyektlar uchun noyob va yashirin identifikatorlar yaratishda ishlatiladi. Bu ilg'or mavzu bo'lib, hozircha uni faqat ro'yxatni to'liq qilish uchun eslab qo'yamiz:
let id = Symbol("id");
typeof operatori
typeof operatori argumentning turini matn ko'rinishida qaytaradi. Bu o'zgaruvchi ichida qanday tur borligini tekshirish uchun juda foydali:
Yana bir nechta muhim holatni ko'ramiz:
typeof null natijasi "object" โ bu JavaScript'ning rasmiy tan olingan xatosi! Aslida null obyekt emas, alohida tur. Bu xato orqaga moslik uchun tuzatilmagan. Buni shunchaki eslab qoling.typeof funksiyalar uchun "function" qaytaradi, garchi JavaScript'da alohida "function" turi yo'q bo'lsa ham. Funksiyalar texnik jihatdan obyektlarga tegishli, lekin typeof ularni alohida ajratadi โ bu amalda qulay.Xulosa
- JavaScript'da 8 ta ma'lumot turi bor:
number,bigint,string,boolean,null,undefined,object,symbol; - Birinchi 7 tasi oddiy (primitive),
objectesa alohida โ u to'plamlarni saqlaydi; - JavaScript dinamik tipli โ bir o'zgaruvchi turli tipdagi qiymatlarni saqlashi mumkin;
typeofoperatori qiymat turini matn sifatida qaytaradi;typeof nullnoto'g'ri โ"object"qaytaradi, bu tarixiy xato.