Tüm blog yazıları

JavaScript’te Destructuring Assignment

JavaScript'te destructuring ile kodlarınızı daha temiz ve kısa yazmaya ne dersiniz? Bu blog yazısında dizi ve obje destructuring yöntemlerini adım adım öğrenerek verileri kolayca değişkenlere atama tekniklerini keşfedin.

eminbasbayan4 dk okuma
JavaScript destructuring gösterimi, dizi ve obje elemanlarını ayırma ve değişkenlere atama örneği.

JavaScript, verileri işlemede çok güçlü bir dildir ve bazen uzun yazımlar yerine kısa ve temiz kodlarla aynı işlemleri yapabilmek çok işimizi kolaylaştırır. Bu yazıda, JavaScript’te destructuring özelliğinden nasıl yararlanabileceğimizi, özellikle dizi destructuring (array destructuring) ve obje destructuring (object destructuring) yöntemlerini ayrıntılı bir şekilde açıklayacağız. Bu özellikler, dizilerden veya objelerden değerleri alıp doğrudan değişkenlere atamak için kullanılır ve yazdığımız kodları daha anlaşılır, daha temiz ve kısa hale getirir.

Destructuring Nedir?

Destructuring, bir dizi veya objedeki elemanları başka değişkenlere çıkartmak için kullanılan bir yöntemdir. Bu özellik, uzun uzun dizi veya obje elemanlarını tek tek referans almayı gerektirmeden, hepsini tek seferde çıkarıp atamamıza olanak tanır. Yani, veriyi “paketinden” çıkarıp, istediğimiz şekilde “ayrı ayrı” alırız. Bunu örneklerle daha iyi anlayacağız.

Dizi Destructuring (Array Destructuring)

Dizi Elemanlarını Ayırma

Diyelim ki bir dizimiz var ve bu dizi öğrencilerin sınav notlarını içeriyor:

jsx
const notlar = [85, 90, 78, 92, 88];

Eğer bu diziden sadece ilk iki sınav notunu almak istiyorsak, normalde şu şekilde yaparız:

jsx
const birinciNot = notlar[0];
const ikinciNot = notlar[1];

Ancak destructuring ile bu işlemi çok daha kısa bir şekilde yapabiliriz:

jsx
const [birinciNot, ikinciNot] = notlar;

Bu kod, dizinin ilk iki elemanını sırasıyla birinciNot ve ikinciNot değişkenlerine atar. Bu şekilde, her bir elemanı manuel olarak tek tek almak yerine, kısa ve temiz bir şekilde diziyi doğrudan parçalara ayırmış olduk.

Sıra Önemlidir

Destructuring yaparken, elemanların sırası oldukça önemlidir. Dizi elemanları, sırasıyla değişkenlere atanır. Yani dizinin ilk elemanı ilk değişkene, ikinci eleman ise ikinci değişkene atanır. Örneğin:

jsx
const [ilk, ikinci, ucuncu] = [5, 10, 15];
console.log(ilk); // 5
console.log(ikinci); // 10
console.log(ucuncu); // 15

Eğer sıralama karışırsa, atanan değerler de karışır. Bu yüzden dizinin elemanlarını doğru sırada aldığınızdan emin olmalısınız.

Dizinin Değişmeden Kalması

Destructuring işlemiyle dizinin kendisini değiştirmiyoruz. Sadece dizinin içindeki değerleri farklı değişkenlere aktarıyoruz. Yani dizinin elemanlarını alıp başka bir değişkenle kopyaladığımızda, dizinin kendisi hala aynı kalır. Örneğin:

jsx
const ogrenciler = ["Ali", "Ayşe", "Mehmet"];
const [ilkOgrenci, ikinciOgrenci] = ogrenciler;
console.log(ogrenciler); // ["Ali", "Ayşe", "Mehmet"]

Burada ogrenciler dizisinin kendisi değişmeden kalır, sadece diziden bazı değerler alınarak farklı değişkenlere aktarılır.

Obje Destructuring (Object Destructuring)

Dizilerde olduğu gibi, objelerden de değerleri kolayca çıkartabiliriz. Ancak dizilerde sıralama önemliyken, objelerde isim eşleşmesi (property name matching) önemlidir.

Diyelim ki elimizde bir öğrenci nesnesi (object) var:

jsx
const ogrenci = {
  ad: "Zeynep",
  yas: 22,
  bolum: "Bilgisayar Mühendisliği"
};

Normalde bu değerleri almak için şu şekilde yazarız:

jsx
const ad = ogrenci.ad;
const yas = ogrenci.yas;
const bolum = ogrenci.bolum;

Ancak obje destructuring ile bu işlemi çok daha kısa yapabiliriz:

jsx
const { ad, yas, bolum } = ogrenci;

Bu kod, ogrenci nesnesinin içindeki ad, yas ve bolum değerlerini aynı isimlerle yeni değişkenlere aktarır.

Farklı İsimle Değer Alma

Eğer obje içindeki property adlarıyla aynı isimde değişken kullanmak istemiyorsak, destructuring sırasında farklı isimler verebiliriz. Örneğin:

jsx
const { ad: isim, yas: ogrenciYasi } = ogrenci;
console.log(isim); // "Zeynep"
console.log(ogrenciYasi); // 22

Burada ad property'si isim adlı değişkene, yas property'si ise ogrenciYasi adlı değişkene atanmıştır.

Varsayılan (Default) Değer Atama

Obje içinde olmayan bir property’yi destructure etmeye çalışırsak, JavaScript undefined döner. Bunu önlemek için varsayılan değer (default value) atayabiliriz:

jsx
const { ad, yas, universite = "Bursa Uludağ Üniversitesi" } = ogrenci;
console.log(universite); // "Bursa Uludağ Üniversitesi"

Eğer ogrenci objesinde universite property’si bulunmuyorsa, belirtilen varsayılan değer kullanılır.

İç İçe (Nested) Obje Destructuring

Bir obje içinde başka bir obje varsa, onun içindeki değerlere de destructuring ile kolayca ulaşabiliriz:

jsx
const kullanici = {
  isim: "Emir",
  adres: {
    sehir: "İzmir",
    postaKodu: 35000
  }
};

const {
  adres: { sehir, postaKodu }
} = kullanici;

console.log(sehir); // "İzmir"
console.log(postaKodu); // 35000

Burada adres objesinin içindeki sehir ve postaKodu doğrudan dışarı çıkarılmıştır.

Destructuring’in Avantajları

  1. Daha Temiz Kod: Hem dizilerde hem objelerde daha kısa ve anlaşılır kod yazmamızı sağlar.
  2. Daha Az Hata: Her bir değişkenin hangi değeri aldığı açıkça görülür.
  3. Okunabilirlik: Kodun amacı ilk bakışta anlaşılır hale gelir.
  4. Kolay Entegrasyon: API’lardan veya JSON verilerinden gelen objelerle çalışırken özellikle çok işe yarar.

Özetle

Destructuring, dizilerden ve objelerden verileri çok daha kolay ve hızlı bir şekilde alabilmemizi sağlar.

  • Dizilerde sıra, objelerde isim eşleşmesi önemlidir.
  • Destructuring işlemi orijinal veriyi değiştirmez, sadece içindeki değerleri kopyalar.

Bu özellik, JavaScript öğrenenler için oldukça faydalıdır ve modern projelerde sıklıkla kullanılır.

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