Tüm blog yazıları

JavaScript'te (Objects) Nesneler Nedir?

JavaScript öğrenmeye başladığımızda karşımıza önce sayılar, metinler, true/false gibi basit veri türleri çıkar. Bunlar ilkel (primitive) veri tipleridir v

eminbasbayan5 dk okuma
JavaScript'te (Objects) Nesneler Nedir?

JavaScript öğrenmeye başladığımızda karşımıza önce sayılar, metinler, true/false gibi basit veri türleri çıkar. Bunlar ilkel (primitive) veri tipleridir ve yalnızca tek bir değeri tutarlar. Ancak daha karmaşık yapılarla çalışmaya başladığımızda, birden fazla bilgiyi bir arada tutmamız gerekir. İşte bu noktada referans (reference) veri tipleri devreye girer. JavaScript’te en çok kullanılan referans veri tiplerinden biri de nesnelerdir (objects). Nesneler, farklı türdeki verileri tek bir yapıda bir araya getirmemize olanak tanır.

Bu yazıda yalnızca nesneleri inceleyeceğiz. Nesnelerin nasıl çalıştığını, ne zaman kullanıldığını, nasıl tanımlandığını ve neden çok işe yaradığını sade bir dille anlatacağız.

Nesneler Nedir?

Bir nesne (object), içinde anahtar-değer (key-value) çiftleri bulunduran bir yapıdır. Yani her bilgi, bir isimle birlikte saklanır. Bu isim, bilginin ne olduğunu belirtir. Nesnelerdeki her bilgi bir özelliktir (property).

Örnek:

metin
let kitap = {
  ad: "Simyacı",
  yazar: "Paulo Coelho",
  sayfaSayisi: 192,
  basimYili: 1988
};

Bu örnekte kitap adında bir nesne oluşturduk. Bu nesne, dört farklı bilgiyi bir arada tutuyor:

  • ad → "Simyacı"
  • yazar → "Paulo Coelho"
  • sayfaSayisi → 192
  • basimYili → 1988

Her bilgi bir anahtar (ad, yazar, sayfaSayisi, basimYili) ile birlikte verildi. Bu sayede hangi bilgi neyi ifade ediyor kolayca anlaşılabiliyor.

Dizi mi, Nesne mi?

Aynı bilgileri bir diziyle tutmaya kalkarsak şöyle bir şey olur:

metin
let kitap = ["Simyacı", "Paulo Coelho", 192, 1988];

Burada bilgiler var ama hangisi kitap adı, hangisi sayfa sayısı belli değil. Bir sıralama kuralı uydurup bu sıraya göre ezberlemek gerekir. Ama bu hem zor hem de karışıklığa yol açar. İşte bu nedenle, bilgileri etiketleyerek saklamak için nesneler kullanılır.

Gerçek Hayattan Nesne Örneği

Bir sosyal medya uygulaması yaptığımızı düşünelim. Her kullanıcının bazı bilgileri vardır:

  • kullanıcı adı
  • kaç takipçisi olduğu
  • profil açıklaması
  • hesabın gizli olup olmadığı

Bu bilgileri şu şekilde bir nesneyle tutabiliriz:

metin
let kullanici = {
  kullaniciAdi: "elif456",
  takipciSayisi: 230,
  aciklama: "Kitap sever. Kahve tutkunu.",
  gizliMi: false
};

Bu nesne sayesinde, bir kullanıcıyla ilgili farklı türdeki tüm verileri tek bir yapının içinde anlamlı şekilde saklamış oluruz.

Nesne Nasıl Oluşturulur?

JavaScript’te nesneleri süslü parantez {} kullanarak oluştururuz. İçine yazdığımız her bilgi, bir anahtar-değer (key-value) çifti olarak tanımlanır. Anahtar, bir etiket gibidir; değeri temsil eder. Aralarına : (iki nokta) koyarız. Birden fazla bilgi varsa, aralarına , (virgül) koyarız.

metin
const ogrenci = {
  ad: "Ayşe",
  numara: 102,
  sinif: "10A"
};

Bu nesne, bir öğrenciyi temsil ediyor ve onunla ilgili üç bilgi içeriyor: adı, numarası ve sınıfı.

Nesnelerde Farklı Veri Türleri Kullanmak

Nesnelerin en güzel yanlarından biri, içine istediğimiz türde bilgiyi koyabilmemizdir. Sadece yazı (string) değil, sayı (number), doğru/yanlış (boolean), dizi (array) ve hatta başka nesneleri bile yerleştirebiliriz.

metin
const kitap = {
  baslik: "Gölgedeki Kadın",
  yazar: "Ahmet Demir",
  sayfaSayisi: 320,
  konular: ["gerilim", "macera", "psikoloji"],
  satistaMi: true
};

Bu örnekte:

  • baslik ve yazar birer yazıdır.
  • sayfaSayisi bir sayıdır.
  • konular bir dizidir.
  • satistaMi ise bir boolean (doğru/yanlış) ifadedir.

Nesne İçindeki Verilere Erişim

Bir nesne içindeki verilere ulaşmak için, ya nokta notasyonu kullanılır, ya da köşeli parantez notasyonu. Genellikle nokta notasyonu daha yaygındır.

metin
kullanici.takipciSayisi       // 230 döner
kullanici.kullaniciAdi        // "elif456" döner

Eğer anahtar adı bir değişkende saklanıyorsa, köşeli parantez notasyonu kullanılır:

metin
let bilgi = "aciklama";
console.log(kullanici[bilgi]);  // "Kitap sever. Kahve tutkunu."

Sıralama Neden Önemli Değil?

Nesnelerde bilgilerin sırası önemli değildir. Çünkü her bilgi, kendi adıyla çağrılır. Yani önce "kullaniciAdi", sonra "takipciSayisi" gelmiş ya da gelmemiş, bu JavaScript için fark etmez.

metin
const ogrenci = {
  numara: 102,
  ad: "Ayşe",
  sinif: "10A"
};

Yukarıdaki tanım da tamamen doğrudur ve çalışır.

Karışık Bir Örnek: Film Bilgisi

Farklı veri türlerini içeren, biraz daha kapsamlı bir nesne örneği inceleyelim:

metin
const film = {
  ad: "Sonsuz Yolculuk",
  yonetmen: "Melis Yıldız",
  vizyonYili: 2021,
  turler: ["bilim kurgu", "dram"],
  imdbPuani: 8.4,
  izlenmeSayisi: 1500000,
  yorumlar: {
    ilkYorum: "Harikaydı!",
    ikinciYorum: "Finali beklediğim gibi değildi."
  },
  aktifMi: false
};

Bu nesne bir filmi temsil ediyor ve içinde:

  • Yazılar (string)
  • Sayılar (number)
  • Dizi (array)
  • Başka bir nesne (yorumlar)
  • Boolean (aktifMi) gibi farklı veri türleri yer alıyor.

Nesne Oluştururken Dikkat Edilecekler

  • Her bir anahtar-değer çiftinden sonra , (virgül) konulmalı.
  • Anahtar isimleri genellikle küçük harfle başlar ve camelCase dediğimiz yazım şekliyle yazılır: kullaniciAdi, dogumTarihi gibi.
  • Değer kısmında string’ler tırnak içinde yazılırken, sayılar ve boolean değerler doğrudan yazılır.
  • Nesneye const ile tanımlarsak, içeriğini değiştirebiliriz ama tümünü başka bir şeye eşitleyemeyiz. Bu da nesnelerin referans türünde olduğunu gösterir.

Nesnelerle Çalışmanın Avantajları

  • Bilgiler anlaşılır şekilde saklanır.
  • Her bilgiye ismiyle erişilir, ezber yapmaya gerek yoktur.
  • Kod okunabilirliği artar.
  • Karışık yapılar daha düzenli hale gelir.
  • Farklı türdeki verileri bir arada tutmak mümkündür.

Sonuç

JavaScript nesneleri, yazdığımız programlarda çok çeşitli bilgileri düzenli ve anlaşılır şekilde saklamamıza yardımcı olur. Dizi kullanmanın yeterli gelmediği durumlarda nesneler devreye girer ve bize büyük kolaylık sağlar. Her bir bilgiye bir etiket (anahtar) vermek, hem kod yazarken hem de okurken işleri kolaylaştırır.

Programlamada gerçek dünyayı modellemek istiyorsan, nesneler senin en önemli araçlarından biri olacak. Bu yazıda, nesnelerin hem ne işe yaradığını hem de nasıl tanımlandığını detaylı şekilde öğrendik. İlerleyen konularda, bu nesnelerden nasıl veri çekilir, nasıl güncellenir gibi konulara da geçiş yapabiliriz.

JavaScript Classes ile pratik uygulamalar, metotlar arası iletişim ve gerçek dünya kod örnekleri
JavaScript Dersleri9 dk okuma

JavaScript Classes - Pratik Uygulamalar

JavaScript class'ları ile pratik uygulamalara geçin! Metotlar arası iletişimden constructor'da metot çağırmaya, kod tekrarını azaltmaktan gerçek dünya senaryolarına kadar class kullanımının inceliklerini keşfedin. Kendi alışveriş sepeti örneğinizle bilginizi pekiştirin.

Yazıyı oku
JavaScript class yapısını gösteren bir kod örneği, ES6 ile modern nesne oluşturma
JavaScript Dersleri9 dk okuma

JavaScript Classes

ES6 ile JavaScript'e gelen class yapısı sayesinde nesne oluşturmak artık çok daha kolay ve düzenli! Constructor function karmaşasından kurtulup, okunabilir ve yönetilebilir kodlar yazmak isteyenler için modern JavaScript'in temel taşı olan class'ları tüm detaylarıyla keşfedin. Bu rehberle nesne şabl

Yazıyı oku
JavaScript kodunda Constructor Function ve new keyword'ü ile nesne oluşturma örnekleri
JavaScript Dersleri8 dk okuma

Constructor Functions ve new Keyword

Factory Function'ların hafıza israfı sorununa Constructor Function'lar ve new keyword'ü ile son verin! Metotları paylaştırarak JavaScript objelerini daha verimli nasıl oluşturacağınızı, new'in perde arkasında neler yaptığını ve prototype sisteminin gücünü bu rehberde keşfedin.

Yazıyı oku

Çerez tercihlerin

Platformun çalışması için zorunlu çerezler kullanıyoruz. İzin verirsen anonim kullanım verilerini ölçüyoruz. Ayrıntıları incele