JavaScript, yazılım dünyasında en yaygın kullanılan dillerden biridir ve güçlü özelliklerinden biri de nesne (object) yapısıdır. Nesneler, birbirine ait bilgileri bir arada tutmak için kullanılan, içinde anahtar-değer (key-value) çiftleri barındıran özel veri yapılarıdır. Gerçek hayatta bir çalışanın adı, görev durumu ve sorumlu olduğu proje gibi bilgiler nasıl bir arada düşünülecekse, JavaScript’te de bu şekilde tanımlanabilir.
Nesne Nedir?
Bir nesne, verileri etiketli şekilde saklamamıza olanak tanır. Örneğin, bir şirkette çalışanların görev durumlarını takip etmek için şu şekilde bir nesne oluşturabiliriz:
const employeeStatus = {
Ahmet: "Görevde",
Zeynep: "Toplantıda"
};
Burada:
"Ahmet"
ve "Zeynep"
anahtar (key),
"Görevde"
ve "Toplantıda"
ise bu kişilerin mevcut görev durumlarını temsil eden değerlerdir (value).
Nesnede Var Olan Veriyi Güncellemek
Diyelim ki Zeynep’in toplantısı bitti ve artık "Görevde"
olarak işaretlenmesi gerekiyor. Bu durumda ilgili veriyi güncellemek oldukça kolaydır:
1. Nokta Gösterimi (Dot Notation):
employeeStatus.Zeynep = "Görevde";
2. Köşeli Parantez Gösterimi (Bracket Notation):
employeeStatus["Zeynep"] = "Görevde";
Her iki yöntem de aynı sonucu verir.
Nesneye Yeni Veri Eklemek
Yeni bir çalışan olan Elif işe başladı ve durumu "Eğitimde"
olarak tanımlanacaksa:
employeeStatus.Elif = "Eğitimde";
veya
employeeStatus["Elif"] = "Eğitimde";
Benzer şekilde, Murat isimli bir çalışanın durumu "İzinde"
olarak eklenebilir:
employeeStatus["Murat"] = "İzinde";
Bu işlemlerle nesneye yeni anahtarlar eklenmiş olur. JavaScript nesneleri dinamik yapıda olduğu için sonradan genişletilebilir.
Nesneden Veri Silmek
Artık şirkette çalışmayan bir kişi varsa ve onun kaydını silmek istiyorsak delete
ifadesini kullanabiliriz. Örneğin, Ahmet şirketten ayrıldıysa:
delete employeeStatus.Ahmet;
veya
delete employeeStatus["Ahmet"];
Silme işleminden sonra "Ahmet"
anahtarına ulaşmak mümkün olmayacaktır.
Silinip silinmediğini kontrol etmek için:
if ("Ahmet" in employeeStatus) {
console.log("Ahmet hâlâ sistemde.");
} else {
console.log("Ahmet silinmiş.");
}
Not: Silinen bir anahtar undefined
döner ve nesnenin yapısından tamamen çıkar.
Nokta ve Köşeli Parantez Kullanımı Arasındaki Fark
Nokta Gösterimi (.
):
Sadece geçerli değişken isimlerine uygun anahtarlar için kullanılır (boşluk, tire veya rakamla başlamayanlar).
Köşeli Parantez Gösterimi (["anahtar"]
):
Anahtar bir değişkense veya geçersiz karakterler içeriyorsa bu yöntem kullanılır:
const status = {};
const personName = "Ali Veli";
status[personName] = "Görevde"; // status["Ali Veli"] = "Görevde"
Dizi ve Nesne Arasındaki Fark
Hem diziler hem de nesneler veri tutmak için kullanılır, ancak kullanım amaçları farklıdır:
Dizi (Array):
Verileri sıralı şekilde tutar. Her elemanın bir indeks numarası vardır:
const görevler = ["Toplantı", "Yazılım Geliştirme", "Raporlama"];
// görevler[0] => "Toplantı"
Nesne (Object):
Verileri etiketleyerek saklar. Sıra önemli değildir, hangi etiketin (anahtarın) neyi temsil ettiğine bakılır:
const görevDurumu = {
Elif: "Eğitimde",
Murat: "İzinde"
};
Veri yapısı seçerken:
- Sıralı ve indisli bilgi gerekiyorsa dizi,
- Etiketli ve anlamsal bilgi gerekiyorsa nesne kullanılır.
Sonuç
JavaScript’te nesneler, günlük yazılım geliştirme süreçlerinde çokça kullanılan esnek yapılardır. Bir çalışanın görev durumu, bir ürünün stoğu, bir öğrencinin not bilgisi gibi birçok senaryoda nesneler etkili ve düzenli veri yönetimi sağlar. Bu yazıda, bir nesneye nasıl veri ekleneceğini, güncelleneceğini, erişileceğini ve silineceğini öğrendik.
Bu temel bilgiler, ileride nesne tabanlı yapılarla çalışırken size güçlü bir başlangıç noktası sunacaktır.