JavaScript Ma'lumot Turlari

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.

  1. 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 */
    
  2. NaN - inglizchada "not a number" ya'ni "son emas" ma'nosini beradi. Noaniq yoki noto'g'ri arifmetik hisoblashlarda NaN 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:

  1. Ikkitalik qo'shtirnoq (double quotes): "Salom!"

  2. Bittalik qo'shtirnoq (single quotes): 'Salom!'

  3. 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 nulldan 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 uchun

    • bigint juda katta sonlar uchun ±(253-1)

    • string qo'shtirnoqlar ichida yozilgan har qanday qiymat

    • boolean true va false qiymatlariga ega mantiqiy qiymatlar uchun

    • null mavhum, bo'sh qiymatlar uchun

    • undefined qiymat berilmagan o'zgaruvchilar uchun

    • symbol 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: