JavaScript Ma'lumot Turlari
JavaScriptda sodda va murakkab tusdagi ma'lumot turlari mavjud. Bu postda, biz ularni har birini sinchiklab o'rganamiz.
Kirish
JavaScriptda har qanday qiymat biror bir turga oid. Masalan son yoki obyekt. Ular sodda va murakkab, JavaScript tili bilan aytganda "primitive" va "non-primitive" tuslariga bo'linadi.
Primitive - o'zida sodda qiymatni saqlaydigan o'zgaruvchilarga aytiladi. Masalan son, matn va hokazo.
Non-primitive - o'zida murakkab ko'rinishdagi ma'lumotlar, masalan funksiyalar, arraylar va boshqalarni saqlaydigan o'zgaruvchilarga aytiladi.
Biz biror o'zgaruvchiga xohlagan turdagi ma'lumot turini berishimiz mumkin. Masalan, biror qiymatga son berib, unga yangi ma'lumot turi, masalan matn (keyinchalik - string) qiymatini berishimiz mumkin. Chunki, JavaScript "dynamically-typed language" ya'ni dinamik tarzda yoziladigan til sirasiga kiradi.
let secretCode = "car";
secretCode = 459;
console.log(secretCode); // 459
Number
let n = 123;
n = 12.36;
Number
ya'ni "son" turi butun va ratsional sonlarni ifoda etadi. Ular bilan barcha arifmetik amallarni, masalan qo'shuv +
, ayiruv -
, ko'paytiruv *
, bo'luv /
va hokazolarni amalga oshirish mumkin.
Oddiy sonlardan tashqari, ma'lum "raqamli qiymatga ega" ma'lumot turlari ham mavjud.
Infinity & -Infinity
- cheksizlikni bildiradi. Har qanday sondan katta yoki kichik sonni yaratish uchun foydalansak bo'ladi.console.log(1 / 0); /* Infinity */ console.log(Infinity); /* Infinity */ console.log(1 + Infinity); /* Infinity */
NaN
- inglizchada "not a number" ya'ni "son emas" ma'nosini beradi. Noaniq yoki noto'g'ri arifmetik hisoblashlardaNaN
turi hosil bo'ladi.console.log("string" + 1); // NaN console.log(NaN * 2); // NaN console.log("son emas" / 2 - 1); // NaN
Faqatgina bir holat bor:
console.log(NaN ** 0) // 1 🫤
BigInt
Number
turi juda katta sonlarni ya'ni (253-1) va -(253-1) qiymatigacha bo'lgan sonlar bilan "kelishmaydi", aniqroq aytsak ular xatolik beradi. Ma'lumot uchun, (253-1) = 9007199254740991 bo'ladi.
// bu yerda number ning turi BigInt
const number = 954153219879161321981911819621465432;
Lekin, BigInt
turi kam ishlatiladi va hamma brauzerlarda ham ular bilan ishlash imkoniyati yo'q.
String
String
- inglizchadan "chiziq" yoki "ip" degan ma'noni beradi. Lekin, bu tarjimalar stringlarni to'liq ifodalamaydi.
Qisqa qilib aytganda, String
- bu qo'shtirnoqlar ichida yozilgan har qanday qiymat.
JavaScriptda qo'shtirnoqlarning 3 turi mavjud:
Ikkitalik qo'shtirnoq (double quotes):
"Salom!"
Bittalik qo'shtirnoq (single quotes):
'Salom!'
Orqaga yo'nalgan qo'shtirnoq (backticks) :
`Salom`
Ikkitalik va bittalik qo'shtirnoqlar orasida farq yo'q. Backticks qo'shtirnoqlarining ma'lum funksiyalari bor. Ular bizga o'zgaruvchi va jumlalarni ${...}
ga o'rash orqali satrlarga joylashtirishga imkon beradi. Keling, qo'shtirnoqlarni o'zaro farqini ko'ramiz:
const name = "Ali";
// Ikkitalik va bittalik qo'shtirnoqlar
console.log("Salom " + name + "!"); // Salom Ali!
// Backtick qo'shtirnoq
console.log(`Salom ${name}!`) // Salom Ali!
console.log(`Mening yoshim ${1 + 2} da`) // Mening yoshim 3 da
E'tibor bering, ${ }
ifodasi faqatgina backticks qo'shtirnoqlari ichida ishlaydi:
console.log("Mening yoshim ${1 + 2} da") // Mening yoshim ${1 + 2} da
Boolean
Boolean
- JavaScriptda mantiqiy ma'lumot turlarini ifodalash uchun ishlatiladi. Ularning faqatgina 2ta qiymati bor: true
va false
ya'ni to'g'ri va noto'g'ri.
Masalan:
const isAuthSuccess = true; // ha, identifikatsiya muvafaqqiyatli bo'ldi
let isUserFemale = false; // yo'q, foydalanuvchi ayol kishi emas
Arifmetik taqqoshlarni ham boolean
qiymatlari sifatida ishlatish mumkin:
const isGreater = 2 > 1;
console.log(isGreater); // true chunki 2 1dan katta
Null
Null
- bo'sh, nol yoki no'malum ma'lumot turini ifodalaydi.
const data = null;
null
ni odatda biror o'zgaruvchiga ataylab biriktiriladi. Masalan, biz biror o'zgaruvchini kodimiz avvalida bo'sh bo'lishini lekin keyinchalik unga boshqa yaroqli qiymat berishni xohlasak null
dan foydalansak bo'ladi.
Undefined
Undefined
ham null
ga o'xshash. Farqi shundaki, undefined
turidagi o'zgaruvchilarga qiymat berilmagan yoki qabul qilinmagan bo'ladi. Masalan, siz biror serverdan API ma'lumotlarini olishni xohlagan lekin o'sha ma'lumotlar noto'g'ri tarzda yoki umuman kelmagan bo'lsa, undefined
qiymati hosil bo'ladi.
let city;
console.log(city); // undefined
Biz undefined
qiymatini xuddi null
kabi biriktirsak bo'ladi lekin odatda bu vazifa uchun null
afzal ko'riladi.
Objects & Symbols
Post boshida primitive va non-primitive ma'lumot tuslari haqida gap boshlagan edik. Hozir o'rganmoqchi bo'lgan Object dan boshqa siz o'rgangan barcha ma'lumot turlari primitive sinfiga kiradi. Qolganlari esa non-primitive .
Objects - ya'ni obyektlar. JavaScriptda ular juda muhim va har yerda ishlatiladi. Ular o'zida katta hajmdagi murakkab ko'rinishdagi ma'lumotlar bazasini saqlay oladi. Ular bilan keyingi postlarimizda alohida tanishamiz.
Symbols - ramzlar. Ichidagi ma'lumotlar bir xil bo'lsa ham, bir-biriga teng bo'lmagan qiymatlarni yaratish uchun ishlatiladi.
❗Aytaylik, biror o'zgaruvchiga siz tahmin qilolmaydigan qiymat berdingiz. Uni turini qanday bilasiz?
Bu uchun sizga typeof
operatori yordamga keladi.
typeof
typeof
xohlagan o'zgaruvchining ma'lumot turini sizga bildiradi. typeof x
ko'rinishida foydalaniladi. Masalan:
typeof 5 // number
typeof 'Uzbekistan' // string
typeof undefined // undefined
typeof true // boolean
typeof Object() // object
typeof Symbol('id') // symbol
Xulosa
JavaScriptda 8 ta ma'lumot turlarini ko'rib chiqdik.
7 ta primitiv turlar:
number
natural, butun va ratsional uchunbigint
juda katta sonlar uchun ±(253-1)string
qo'shtirnoqlar ichida yozilgan har qanday qiymatboolean
true
vafalse
qiymatlariga ega mantiqiy qiymatlar uchunnull
mavhum, bo'sh qiymatlar uchunundefined
qiymat berilmagan o'zgaruvchilar uchunsymbol
yagona turdagi aniqlovchi yaratish uchun
1 ta non-primitive ma'lumot turi
object
murakkab tuzulishga ega bo'lgan ma'lumot turi
typeof
operatori bizga o'zgaruvchiga biriktirilgan ma'lumotning turini aniqlab beradi. typeof x
ko'rinishda bo'ladi va ma'lumot turini string
ma'lumot turi sifatida qaytaradi.
Postni sabr bilan o'qiganingiz uchun rahmat. Sizga foydali bo'ladi degan umiddaman.
Agar darsliklar sizga yoqayotgan bo'lsa, bizni kuzatib borishingiz mumkin:
Telegram: https://t.me/devlabuz
Youtube: https://www.youtube.com/@devlabuz
Twitter: https://twitter.com/samadov__