Sobes.tech
Junior

Муттабель жана иммутабель маалымат түрлөрүнүн негизги айырмасы эмнеде?

sobes.tech AI

AIден жооп

Ачкычтуу айырмачылык — бул объекттин маанисин түзүлгөндөн кийин өзгөртүүгө мүмкүнчүлүк берүү. Муттабельдүү түрлөр түздөн-түз өзгөртүүгө мүмкүндүк берет, имуттабельдүү — жок. "Өзгөртүү" имуттабельдүү объектте чын эле жаңы объект түзүлүп, жаңы мааниге ээ болот.

Мисалдар:

Муттабельдүү түрлөр:

  • Array
  • Object
// Муттабельдүү мисал (Array)
let mutableArray = [1, 2];
mutableArray.push(3); // Бар объектти өзгөртүү
console.log(mutableArray); // Натыйжа: [1, 2, 3]
// Муттабельдүү мисал (Object)
let mutableObject = { a: 1 };
mutableObject.b = 2; // Бар объектти өзгөртүү
console.log(mutableObject); // Натыйжа: { a: 1, b: 2 }

Имутабельдүү түрлөр:

  • String
  • Number
  • Boolean
  • null
  • undefined
  • Symbol
  • BigInt
// Имутабельдүү мисал (String)
let immutableString = "привет";
immutableString = immutableString + " мир"; // Жаңы сап түзүлөт
console.log(immutableString); // Натыйжа: привет мир

// Ссылка салыштыруу айырмачылыгын көрсөтөт
let str1 = "abc";
let str2 = str1.toUpperCase();
console.log(str1 === str2); // Натыйжа: false
// Имутабельдүү мисал (Number)
let immutableNumber = 10;
immutableNumber = immutableNumber + 5; // Жаңы сандык мааниге ээ болот
console.log(immutableNumber); // Натыйжа: 15

Салыштыруу:

Белги Муттабельдүү Имутабельдүү
Өзгөртүү Түздөн-түз мүмкүн Түздөн-түз мүмкүн эмес
Жаңы шилтеме Эски бойдон калат "Өзгөртүү" учурунда жаңы түзүлөт

Бул айырмачылыкты түшүнүү коддун алдын ала билүүсү, абалдар менен иштөөдө (мисалы, React менен Redux) жана оптималдаштырууда маанилүү. Имутабельдүү маалыматтарды колдонуу дебагда жеңилдетет, кайтаруу функцияларын (undo) оңой ишке ашырат жана UI-фреймворктордо рендерингди оңдоого жардам берет, шилтемелерди салыштыруу аркылуу оңой ишке ашырылат.