Junior
Değiştirilebilir ve değiştirilemez veri tipleri arasındaki temel fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Değiştirme yeteneği açısından temel fark, nesnenin oluşturulduktan sonra değerinin değiştirilebilmesidir. Değiştirilebilir tipler doğrudan değişikliklere izin verirken, değiştirilemez tipler izin vermez. Değiştirilemez bir nesne "değiştirildiğinde" aslında yeni bir nesne, yeni bir değerle oluşturulur.
Örnekler:
Değiştirilebilir tipler:
ArrayObject
// Değiştirilebilir örnek (Array)
let mutableArray = [1, 2];
mutableArray.push(3); // Mevcut diziyi değiştirir
console.log(mutableArray); // Gösterir: [1, 2, 3]
// Değiştirilebilir örnek (Object)
let mutableObject = { a: 1 };
mutableObject.b = 2; // Mevcut nesneyi değiştirir
console.log(mutableObject); // Gösterir: { a: 1, b: 2 }
Değiştirilemez tipler:
StringNumberBooleannullundefinedSymbolBigInt
// Değiştirilemez örnek (String)
let immutableString = "merhaba";
immutableString = immutableString + " dünya"; // Yeni bir dize oluşturulur
console.log(immutableString); // Gösterir: merhaba dünya
// Referans karşılaştırması farkı gösterecektir
let str1 = "abc";
let str2 = str1.toUpperCase();
console.log(str1 === str2); // Gösterir: false
// Değiştirilemez örnek (Number)
let immutableNumber = 10;
immutableNumber = immutableNumber + 5; // Yeni bir sayısal değer oluşturulur
console.log(immutableNumber); // Gösterir: 15
Karşılaştırma:
| Özellik | Değiştirilebilir | Değiştirilemez |
|---|---|---|
| Değişiklik | Oluştuktan sonra mümkün | Oluştuktan sonra mümkün değil |
| Yeni referans | Aynı kalır | "Değişiklik" yapıldığında yeni oluşturulur |
Bu farkın anlaşılması, kodun öngörülebilirliği, durumlarla çalışma (örneğin React ve Redux'ta) ve optimizasyon için kritiktir. Değiştirilemez verilerin kullanımı hata ayıklamayı kolaylaştırır, geri alma (undo) fonksiyonlarının uygulanmasını sağlar ve UI çerçevelerinde referans karşılaştırmasıyla basitçe optimize edilmesine olanak tanır.