CodeBlanks Logo Icon CodeBlanks

Özellik erişimi

. ve [] ile özelliklere erişmeyi öğrenirsin.

Özellik erişimi

Nesnenin bir özelliğine erişmenin iki yolu vardır: nokta ve köşeli parantez. İkisi de aynı sonuçu verir; ama kullanıldıkları durumlar farklıdır.

Nokta yazımı: user.name. Özellik adı geçerli bir tanımlayıcıysa (harf, rakam, alt çizgi; rakamla başlamaz) nokta kullanılır. Daha kısa ve okunaklıdır.

Köşeli parantez yazımı: user['name']. Özellik adı boşluk, tire içeriyorsa ya da dinamik olarak hesaplanıyorsa köşeli parantez kullanmak zorunludur. Örnek: user['full name'] nokta ile yazılamaz.

Nokta mı, köşeli parantez mi?

Nokta ve köşeli parantez arasında seçim yaparken özellik adının yapısına bakmalısın. Ad geçerli bir tanımlayıcıysa ve baştan belliyse nokta en iyi seçimdir. Adı bir değişkenden geliyorsa, boşluk içeriyorsa veya tire gibi özel karakterler varsa köşeli parantez kullanmalısın.

Dinamik erişim örneği: const key = 'age'; console.log(user[key]). Burada key değişkeni adı taşıdığı için köşeli parantez zorunludur; user.key yazarsan JavaScript 'key' adlı bir özellik arar ve undefined döner.

Olmayan bir özelliğe erişirsen her iki yazımda da undefined döner; hata fırlatılmaz. Bu yüzden özellik varlığını kontrol etmek için user.name !== undefined veya 'name' in user kullanabilirsin.

Uygulama Ürün fiyatını yazdır

{ name: 'Kalem', price: 25, stock: 100 } yapısında bir product nesnesi tanımla. price özelliğini köşeli parantezle (product['price']) erişip console.log ile yazdır.

Başlangıç kodu

index.js
// product nesnesini tanımla, price özelliğini köşeli parantezle yazdır

Örnek çözüm

index.js
const product = { name: 'Kalem', price: 25, stock: 100 };
console.log(product['price']);

Beklenen çıktı

25

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Köşeli parantezle eriş

Soru
const user = { name: 'Ayşe', age: 30 };
console.log(user[____]);
Cevap
const user = { name: 'Ayşe', age: 30 };
console.log(user['name']);

Açıklama: user['name'] köşeli parantezle erişimdir.

2 Hangi durumda köşeli parantez zorunlu?

  • Özellik adı kısa ise
  • Özellik adı boşluk içeriyor ise Doğru cevap
  • Nesne büyük ise
  • Özellik sayısal değer ise

Açıklama: boşluk içeren adlar nokta ile yazılamaz.

3 Erişim biçimlerini eşle

Kavram Anlamı
user.name Nokta erişimi
user['name'] Köşeli parantez erişimi
user[key] Dinamik erişim
undefined Olmayan özelliğin sonuçu

Başlangıç bölümündeki tüm dersler