Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
JavaScript’te object (nesne), bilgileri anahtar-değer çiftleri halinde tutan ve bu bilgilerle çalışan metotları da içerebilen bir veri yapısıdır. Örneğin bir kullanıcıyı ad, yas ve aktif özellikleriyle tek bir değer içinde saklayabilirsiniz. Nesneler, ilişkili verileri düzenlemek ve bu verilere anlamlı adlarla erişmek için kullanılır.

JavaScript object nasıl çalışır?​


Nesne özelliklerinin anahtarları metin veya Symbol olabilir; sayısal görünen özellik adları da normal nesnede metne dönüştürülür. Her özellik bir anahtara ve karşılık gelen değere sahiptir. Değer; metin, sayı, doğru-yanlış, dizi, başka bir nesne veya fonksiyon olabilir. Nesne içindeki fonksiyona genellikle metot denir.

Nesne oluşturmanın en yaygın yolu süslü parantez kullanmaktır:

Kod:
const kullanici = {
  ad: "Ayse",
  yas: 28,
  roller: ["editor", "uye"],
  aktif: true,
  tanit: function () {
    return this.ad + " sisteme giris yapti.";
  }
};

console.log(kullanici.ad);
console.log(kullanici["roller"][0]);
console.log(kullanici.tanit());

Bu kodun beklenen çıktısı sırasıyla Ayse, editor ve Ayse sisteme giris yapti. olur. Nokta gösterimiyle kullanici.ad okunabilir; köşeli parantez gösterimiyle kullanici["ad"] aynı özelliğe erişir. this, metot çağrısı nesne üzerinden yapıldığında o nesneyi ifade eder.

Özelliğe erişim ve değişiklik​


Anahtarın adı önceden biliniyorsa nokta gösterimi daha okunaklıdır. Anahtar bir değişkende tutuluyorsa köşeli parantez kullanılır:

Kod:
const alan = "ad";
console.log(kullanici[alan]);

kullanici.yas = 29;
kullanici.sehir = "Ankara";
delete kullanici.aktif;

Bu örnekte mevcut yas değiştirilir, yeni sehir özelliği eklenir ve aktif silinir. Olmayan bir özelliği okumak hata fırlatmak yerine genellikle undefined döndürür. Ancak olmayan özelliğin altına erişmeye çalışmak hata oluşturabilir; bu nedenle iç içe verilerde değerin gerçekten var olduğunu kontrol etmek gerekir.

Aşağıdaki ayrım, hangi erişim biçimini seçmeniz gerektiğini gösterir:

DurumTercihÖrnek
Anahtar sabit ve geçerli bir JavaScript adıNokta gösterimikullanici.ad
Anahtar değişkende tutuluyorKöşeli parantezkullanici[alan]
Anahtar boşluk veya özel karakter içeriyorKöşeli parantezveri["telefon numarasi"]
Özellik nesnede veya prototipte var mı?in işleci"ad" in kullanici
Yalnız nesnenin kendi özelliği mi?Object.hasOwnObject.hasOwn(kullanici, "ad")

Nesneyi uygulamada kullanırken şu sırayı izlemek yeterlidir:

  1. Birlikte anlam taşıyan verileri belirleyin; örneğin kullanıcıya ait bilgileri kullanici nesnesinde toplayın.
  2. Her bilgi için açıklayıcı ve tutarlı anahtar adları seçin.
  3. Sabit anahtarlar için nokta gösterimini, dinamik anahtarlar için köşeli parantez gösterimini kullanın.
  4. Nesneyi fonksiyona gönderin veya bir dizinin elemanı olarak saklayın.
  5. Gerekirse Object.keys(), Object.values() veya Object.entries() ile anahtarları ve değerleri dolaşın.

Sık yapılan hatalar​


Bir nesneyi JSON metniyle karıştırmayın. JSON, veri aktarımında kullanılan metin biçimidir; JavaScript object ise doğrudan kod içinde kullanılan değerdir. JSON metnini temsil ettiği JavaScript değerine çevirmek için JSON.parse(), nesneyi JSON metnine çevirmek için JSON.stringify() kullanılır.

Bir diğer hata, iç içe nesne özelliğine kontrol etmeden erişmektir. Örneğin kullanici.adres.sehir ifadesinde adres yoksa hata alabilirsiniz. Değerin bulunmayabileceği durumda isteğe bağlı zincirleme kullanabilirsiniz: kullanici.adres?.sehir. Ayrıca bir nesneyi const ile tanımlamak, içindeki özelliklerin değiştirilemeyeceği anlamına gelmez; const değişkenin başka bir nesneyle yeniden atanmasını engeller.

Sık sorulan sorular​


Object ile array arasındaki fark nedir?​


Array de bir JavaScript nesnesidir, ancak sıralı koleksiyon davranışına ve dizi metotlarına sahiptir. Dizi denetiminde Array.isArray kullanın; yalnız typeof sonucunun object olması normal nesneyle diziyi ayırmaz. Object ise adlandırılmış özellikleri tutar. Bir kullanıcı listesi için array, tek bir kullanıcının ayrıntıları için object daha uygundur.

Bir object nasıl kopyalanır?​


Yüzeysel bir kopya için const kopya = { ...kullanici }; kullanılabilir. İç içe nesneler varsa bu yöntem alt nesneleri bağımsız kopyalamaz; değişikliklerin birbirini etkilememesi gerekiyorsa yapının derinliğine uygun ayrı bir kopyalama yöntemi seçilmelidir.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic