Sobes.tech
Junior

Kāda ir galvenā atšķirība starp mainīgiem un nemainīgiem datu tipiem?

sobes.tech AI

Atbilde no AI

Galvenā atšķirība ir iespēja mainīt objekta vērtību pēc tā izveides. Mutabli tipi ļauj tieši mainīt, bet imutabli — nē. Kad "mainās" imutabla objekta vērtība, patiesībā tiek izveidots jauns objekts ar jaunu vērtību.

Piemēri:

Mutabli tipi:

  • Array
  • Object
// Mutabls piemērs (Array)
let mutableArray = [1, 2];
mutableArray.push(3); // Mainām esošo masīvu
console.log(mutableArray); // Izvade: [1, 2, 3]
// Mutabls piemērs (Object)
let mutableObject = { a: 1 };
mutableObject.b = 2; // Mainām esošo objektu
console.log(mutableObject); // Izvade: { a: 1, b: 2 }

Imutabli tipi:

  • String
  • Number
  • Boolean
  • null
  • undefined
  • Symbol
  • BigInt
// Imutabls piemērs (String)
let immutableString = "привет";
immutableString = immutableString + " мир"; // Tiek izveidots jauns virkne
console.log(immutableString); // Izvade: привет мир

// Salīdzinājums ar saitēm parādīs atšķirību
let str1 = "abc";
let str2 = str1.toUpperCase();
console.log(str1 === str2); // Izvade: false
// Imutabls piemērs (Number)
let immutableNumber = 10;
immutableNumber = immutableNumber + 5; // Tiek izveidota jauna skaitliska vērtība
console.log(immutableNumber); // Izvade: 15

Salīdzinājums:

Raksturlielums Mutabli tipi Imutabli tipi
Izmaiņas Iespējamas pēc izveides Nav iespējamas pēc izveides
Jauna saite Paliek tāda pati Tiek izveidota jauna "izmaiņu" laikā

Šī atšķirība ir kritiska prognozējamībai, stāvokļu pārvaldībai (piem., React ar Redux) un optimizācijai. Imutablo datu izmantošana vienkāršo atkļūdošanu, ļauj vieglāk īstenot atcelšanas funkcijas (undo) un optimizēt UI atjaunināšanu, salīdzinot saites.