Junior
Dəyişdirilə bilən və dəyişdirilə bilməyən məlumat tipləri arasındakı əsas fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Əsas fərq obyektin dəyərini onun yaradılmasından sonra dəyişdirmək imkanındadır. Dəyişdirilə bilən tiplər birbaşa dəyişikliklərə imkan verir, dəyişdirilə bilməz tiplər isə yox. Dəyişdirilməz obyekt "dəyişildikdə" əslində yeni dəyər ilə yeni obyekt yaradılır.
Nümunələr:
Dəyişdirilə bilən tiplər:
ArrayObject
// Dəyişdirilə bilən nümunə (Array)
let mutableArray = [1, 2];
mutableArray.push(3); // Mövcud array-ı dəyişir
console.log(mutableArray); // Göstərir: [1, 2, 3]
// Dəyişdirilə bilən nümunə (Object)
let mutableObject = { a: 1 };
mutableObject.b = 2; // Mövcud obyekti dəyişir
console.log(mutableObject); // Göstərir: { a: 1, b: 2 }
Dəyişdirilməz tiplər:
StringNumberBooleannullundefinedSymbolBigInt
// Dəyişdirilməz nümunə (String)
let immutableString = "salam";
immutableString = immutableString + " dünya"; // Yeni sətir yaradılır
console.log(immutableString); // Göstərir: salam dünya
// Referansların müqayisəsi fərqi göstərəcək
let str1 = "abc";
let str2 = str1.toUpperCase();
console.log(str1 === str2); // Göstərir: false
// Dəyişdirilməz nümunə (Number)
let immutableNumber = 10;
immutableNumber = immutableNumber + 5; // Yeni ədədi dəyər yaradılır
console.log(immutableNumber); // Göstərir: 15
Müqayisə:
| Xüsusiyyət | Dəyişdirilə bilən | Dəyişdirilməz |
|---|---|---|
| Dəyişiklik | Yaradan sonra mümkündür | Yaradan sonra mümkün deyil |
| Yeni referans | Eyni qalır | "Dəyişiklik" zamanı yeni yaradılır |
Bu fərqi başa düşmək kodun proqnozlaşdırıla bilməsini, vəziyyətlərlə işləməni (məsələn, React və Redux-də) və optimizasiyanı çox vacib edir. Dəyişdirilməz məlumatların istifadəsi səhvlərin tapılmasını asanlaşdırır, geri alma funksiyalarını (undo) asan həyata keçirməyə imkan verir və UI çərçivələrində referansların sadə müqayisəsi ilə renderləməni optimallaşdırır.