JavaScript'te Mutable ve Immutable Veri Türleri
21 Oct 2013Uzun zamandır blog post yazmıyorum; bugün çok basit bir ispat blog postu yazayım dedim. :)
Bir programlama dilinde bir verinin construct olduğu değeri değiştiremiyorsanız bu değere immutable, değiştirebiliyorsanız mutable diyoruz.
gördüğünüz gibi x
değişkeni hiçbir şekilde değişikliğe uğrayamadı.
JavaScript’te iki çeşit veri tipi mutable’dır:
- Object
- Array
Diğer veri türleri ise immutable veri türlerine girerler.
- undefined
- null
- Boolean
- Number
- String
Bunu ispatlamak için basit bir işlem yapıyoruz:
Bu x
değerine bakalım:
Şimdi aynı kodu String
fonksiyonu ile yazalım:
Şimdi x
değerinin değiştireceğini düşünsek de immutable olduğu için bu şekilde kaldı.
Bir objeyi eğer daha sonradan immutable yapmak istiyorsanız Object.freeze
kullanabilirsiniz;
+=, *=, … Operatörleri
+=
gibi operatörler her ne kadar nesneyi değiştiriyor gibi görünse de aslında yeni bir nesne construct ediyor:
bu aslında şu şekilde düşünülmeli:
daha da açarsak;
yani aslında veriyi mutate etmiyor (değiştirmiyor) onu da kullanarak yeni bir primitif değer atıyoruz.
Basit bir bilgi, sadece bu şekilde anlatınca anlaşılması kolay olduğuna inandığım için yazmak istedim. :)