JavaScript Nesne Özellikleri
JavaScript’te nesneler, anahtar-değer çiftlerinden oluşan veri yapılarıdır. Nesne özellikleri, bu anahtar-değer çiftlerini ifade eder. Bu makalede, JavaScript nesne özelliklerini ve örneklerini detaylı bir şekilde inceleyeceğiz.
1. Nesne Özellikleri Nedir?
Nesne özellikleri, bir nesnenin sahip olduğu verileri temsil eder. Her özellik, bir anahtar (key) ve bir değer (value) çiftinden oluşur. Anahtarlar genellikle metin (string) türündedir, değerler ise herhangi bir veri türü olabilir (sayı, metin, dizi, başka bir nesne vb.).
Örnek:
let person = {
name: "Ali", // "name" anahtar, "Ali" değer
age: 25, // "age" anahtar, 25 değer
isStudent: true // "isStudent" anahtar, true değer
};
2. Nesne Özelliklerine Erişim
Nesne özelliklerine iki şekilde erişilebilir:
a) Nokta Notasyonu (Dot Notation)
Nokta notasyonu, özellik adı doğrudan belirtildiğinde kullanılır.
Örnek:
console.log(person.name); // Çıktı: Ali
console.log(person.age); // Çıktı: 25
b) Köşeli Parantez Notasyonu (Bracket Notation)
Köşeli parantez notasyonu, özellik adı dinamik olarak belirlendiğinde veya özellik adı geçerli bir JavaScript tanımlayıcısı olmadığında kullanılır.
Örnek:
console.log(person["name"]); // Çıktı: Ali
console.log(person["age"]); // Çıktı: 25
Dinamik Özellik Erişimi:
let key = "isStudent";
console.log(person[key]); // Çıktı: true
3. Nesne Özelliklerini Güncelleme ve Ekleme
Nesne özellikleri, nokta veya köşeli parantez notasyonu kullanılarak güncellenebilir veya yeni özellikler eklenebilir.
Örnek:
person.age = 26; // Özellik güncelleme
person.job = "Developer"; // Yeni özellik ekleme
console.log(person); // { name: "Ali", age: 26, isStudent: true, job: "Developer" }
4. Nesne Özelliklerini Silme
Nesne özellikleri, delete
operatörü kullanılarak silinebilir.
Örnek:
delete person.isStudent;
console.log(person); // { name: "Ali", age: 26, job: "Developer" }
5. Nesne Özelliklerini Kontrol Etme
Bir nesnenin belirli bir özelliğe sahip olup olmadığını kontrol etmek için in
operatörü veya hasOwnProperty
metodu kullanılır.
a) in
Operatörü
in
operatörü, nesnenin kendisinde veya prototip zincirinde özelliğin olup olmadığını kontrol eder.
Örnek:
console.log("name" in person); // Çıktı: true
console.log("isStudent" in person); // Çıktı: false (silindiği için)
b) hasOwnProperty
Metodu
hasOwnProperty
metodu, yalnızca nesnenin kendisinde özelliğin olup olmadığını kontrol eder.
Örnek:
console.log(person.hasOwnProperty("name")); // Çıktı: true
console.log(person.hasOwnProperty("toString")); // Çıktı: false (prototip zincirinde olduğu için)
6. Nesne Özelliklerini Döngü ile Gezinme
Nesne özellikleri üzerinde döngü oluşturmak için for...in
döngüsü kullanılır.
Örnek:
for (let key in person) {
console.log(key + ": " + person[key]);
}
// Çıktı:
// name: Ali
// age: 26
// job: Developer
Not: for...in
döngüsü, nesnenin kendi özelliklerinin yanı sıra prototip zincirindeki özellikleri de döner. Sadece kendi özelliklerini almak için hasOwnProperty
kullanılabilir.
Örnek:
for (let key in person) {
if (person.hasOwnProperty(key)) {
console.log(key + ": " + person[key]);
}
}
7. Nesne Özelliklerini Dizi Olarak Alma
JavaScript, nesne özelliklerini dizi olarak almak için yerleşik metotlar sunar.
a) Object.keys()
Nesnenin anahtarlarını bir dizi olarak döndürür.
Örnek:
let keys = Object.keys(person);
console.log(keys); // Çıktı: ["name", "age", "job"]
b) Object.values()
Nesnenin değerlerini bir dizi olarak döndürür.
Örnek:
let values = Object.values(person);
console.log(values); // Çıktı: ["Ali", 26, "Developer"]
c) Object.entries()
Nesnenin anahtar-değer çiftlerini bir dizi olarak döndürür.
Örnek:
let entries = Object.entries(person);
console.log(entries); // Çıktı: [["name", "Ali"], ["age", 26], ["job", "Developer"]]
8. Nesne Özelliklerini Birleştirme
İki veya daha fazla nesneyi birleştirmek için Object.assign()
metodu kullanılır.
Örnek:
let obj1 = { a: 1 };
let obj2 = { b: 2 };
let merged = Object.assign(obj1, obj2);
console.log(merged); // Çıktı: { a: 1, b: 2 }
9. Nesne Özelliklerini Dondurma ve Mühürleme
JavaScript, nesne özelliklerini korumak için Object.freeze()
, Object.seal()
ve Object.preventExtensions()
gibi metotlar sunar.
a) Object.freeze()
Nesneyi dondurur. Özellikler eklenemez, silinemez veya güncellenemez.
Örnek:
let obj = { a: 1 };
Object.freeze(obj);
obj.a = 2; // Güncelleme yapılamaz
obj.b = 3; // Yeni özellik eklenemez
delete obj.a; // Özellik silinemez
console.log(obj); // Çıktı: { a: 1 }
b) Object.seal()
Nesneyi mühürler. Özellikler eklenemez veya silinemez, ancak mevcut özellikler güncellenebilir.
Örnek:
let obj = { a: 1 };
Object.seal(obj);
obj.a = 2; // Güncelleme yapılabilir
obj.b = 3; // Yeni özellik eklenemez
delete obj.a; // Özellik silinemez
console.log(obj); // Çıktı: { a: 2 }
c) Object.preventExtensions()
Nesneye yeni özellikler eklenmesini engeller, ancak mevcut özellikler güncellenebilir veya silinebilir.
Örnek:
let obj = { a: 1 };
Object.preventExtensions(obj);
obj.a = 2; // Güncelleme yapılabilir
obj.b = 3; // Yeni özellik eklenemez
delete obj.a; // Özellik silinebilir
console.log(obj); // Çıktı: {}
Sonuç
JavaScript nesne özellikleri, nesnelerin temel yapı taşlarıdır. Bu makalede, nesne özelliklerine erişim, güncelleme, silme, kontrol etme, döngü ile gezme ve diğer önemli kavramları örneklerle açıkladık. Nesne özelliklerini etkili bir şekilde kullanarak, daha düzenli ve okunabilir JavaScript kodları yazabilirsiniz. Nesne özellikleri, modern JavaScript geliştirmede vazgeçilmez bir yapı taşıdır.