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:
ArrayObject
// 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:
StringNumberBooleannullundefinedSymbolBigInt
// 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.