Junior
Care este diferența cheie dintre tipurile de date mutabile și imutabile?
sobes.tech AI
Răspuns de la AI
Diferența cheie constă în capacitatea de a modifica valoarea obiectului după crearea sa. Tipurile mutabile permit modificări directe, în timp ce tipurile imutabile nu. La "modificarea" unui obiect imutabil, de fapt, se creează un nou obiect cu o valoare nouă.
Exemple:
Tipuri mutabile:
ArrayObject
// Exemplu mutabil (Array)
let mutableArray = [1, 2];
mutableArray.push(3); // Modifică array-ul existent
console.log(mutableArray); // Va afișa: [1, 2, 3]
// Exemplu mutabil (Object)
let mutableObject = { a: 1 };
mutableObject.b = 2; // Modifică obiectul existent
console.log(mutableObject); // Va afișa: { a: 1, b: 2 }
Tipuri imutabile:
StringNumberBooleannullundefinedSymbolBigInt
// Exemplu imutabil (String)
let immutableString = "salut";
immutableString = immutableString + " lume"; // Se creează un nou șir
console.log(immutableString); // Va afișa: salut lume
// Compararea referințelor va arăta diferența
let str1 = "abc";
let str2 = str1.toUpperCase();
console.log(str1 === str2); // Va afișa: false
// Exemplu imutabil (Number)
let immutableNumber = 10;
immutableNumber = immutableNumber + 5; // Se creează o nouă valoare numerică
console.log(immutableNumber); // Va afișa: 15
Comparare:
| Caracteristică | Mutabil | Imutabil |
|---|---|---|
| Modificare | Posibil după creare | Imposibil după creare |
| Nouă referință | Rămâne aceeași | Se creează una nouă la "schimbare" |
Înțelegerea acestei diferențe este critică pentru predictibilitatea codului, lucrul cu stările (de exemplu, în React cu Redux) și optimizare. Utilizarea datelor imutabile simplifică depanarea, permite implementarea mai ușoară a funcțiilor de undo și optimizează randarea în cadrul UI prin compararea simplă a referințelor.