Sobes.tech
Junior

O'zgaruvchan va o'zgarmas ma'lumot turlari o'rtasidagi asosiy farq nima?

sobes.tech AI

AIdan javob

Asosiy farq ob'ektning qiymatini uning yaratilgandan keyin o'zgartirish imkoniyatidadir. Mutabel turlar to'g'ridan-to'g'ri o'zgartirishga imkon beradi, immutabel turlar esa yo'q. "O'zgartirish" immutabel ob'ekt uchun aslida yangi qiymat bilan yangi ob'ekt yaratishdir.

Misollar:

Mutabel turlar:

  • Array
  • Object
// Mutabel misol (Array)
let mutableArray = [1, 2];
mutableArray.push(3); // Mavjud massivni o'zgartiradi
console.log(mutableArray); // Ko'rsatadi: [1, 2, 3]
// Mutabel misol (Object)
let mutableObject = { a: 1 };
mutableObject.b = 2; // Mavjud ob'ektni o'zgartiradi
console.log(mutableObject); // Ko'rsatadi: { a: 1, b: 2 }

Immutabel turlar:

  • String
  • Number
  • Boolean
  • null
  • undefined
  • Symbol
  • BigInt
// Immutabel misol (String)
let immutableString = "salom";
immutableString = immutableString + " dunyo"; // Yangi satr yaratiladi
console.log(immutableString); // Ko'rsatadi: salom dunyo

// Referenslarni solishtirish farqni ko'rsatadi
let str1 = "abc";
let str2 = str1.toUpperCase();
console.log(str1 === str2); // Ko'rsatadi: false
// Immutabel misol (Number)
let immutableNumber = 10;
immutableNumber = immutableNumber + 5; // Yangi raqamli qiymat yaratiladi
console.log(immutableNumber); // Ko'rsatadi: 15

Solishtirish:

Xususiyat Mutabel Immutabel
O'zgartirish Yaratilgandan keyin mumkin Yaratilgandan keyin mumkin emas
Yangi havola Bir xil qoladi "O'zgartirish" paytida yangi yaratiladi

Bu farqni tushunish kodning bashorat qilinadiganligi, holatlar bilan ishlash (masalan, React va Reduxda) va optimallashtirish uchun juda muhimdir. Immutabel ma'lumotlardan foydalanish xatoliklarni aniqlashni osonlashtiradi, bekor qilish (undo) funksiyalarini oson amalga oshirishga yordam beradi va UI-ramkalarida referenslarni solishtirish orqali render qilishni optimallashtiradi.