JavaScript kodlarının okunaklı ve etkili olması için doğru veri yapılarının kullanılması önemlidir Diziler, çok boyutlu ve sıralı verileri saklamak için kullanılır ve push, pop, reverse, sort gibi metotlarla eleman ekleme, çıkarma ve sıralama işlemleri yapılabilir Nesneler, anahtar-değer ilişkisini kullanarak özellikleri ve fonksiyonları gruplandırmak için kullanılır Set yapısı, tekrarlamayan elemanları saklamak için kullanılırken, harita yapısı anahtar-değer çiftleri kullanarak eleman saklar Generator fonksiyonları ise, işlemleri duraklatıp devam etmek için kullanılır Bu ipuçları sayesinde JavaScript kodlarınız daha okunaklı ve düzenli hale gelebilir

JavaScript kodlarının daha okunaklı ve etkili olması için veri yapıları doğru bir şekilde kullanılmalıdır. Bu yazımızda, farklı JavaScript veri yapıları hakkında ipuçları paylaşacağız. Diziler, sık kullanılan bir veri yapısıdır. Dizileri doğru şekilde tanımlamak, eleman eklemek ve çıkarmak önemlidir. Nesneler, anahtar-değer çiftlerinden oluşur ve anahtar-değer kullanımının doğru şekilde yapılması gerekmektedir. Set yapısı, eşsiz elemanlar için kullanılırken, harita yapısı anahtar-değer ilişkisini kullanır. Generator fonksiyonları ise, işlemleri duraklatıp devam etmek için kullanılan bir özelliktir. Bu yapılardaki ipuçları sayesinde JavaScript kodlarınız daha etkili ve okunaklı hale gelecektir.
Dizi (Array) Yapıları
Diziler, JavaScript'te sıklıkla kullanılan ve birden fazla değerin aynı değişkende saklanmasını sağlayan bir veri yapısıdır. Diziler oluşturulurken köşeli parantezler [] kullanılır ve elemanlar virgülle ayrılır. İlgili elemana index numarası verilerek ulaşılabilir.
Dizi elemanlarına ekleme veya çıkarma yapmak için push() ve pop() metodları kullanılır. push() metodu ile elemanlar dizinin sonuna eklenirken, pop() metodu ile son eleman çıkarılır.
Dizilerde elemanların sırası ve tipleri değiştirilebilir. reverse() metodu ile elemanların sıraları tersine çevrilebilirken, sort() metodu ile elemanlar alfabetik ya da sayısal olarak sıralanabilir. join() metodu ile dizideki elemanlar birleştirilerek tek bir string'e dönüştürülebilir.
Diziler ayrıca çok boyutlu olabilirler. Böylece bir dizi içinde birden çok dizi saklanabilir. Bu tip dizilerde, elemanlara ulaşmak için iki index numarası kullanılır.
Nesne (Object) Yapıları
Nesneler, JavaScript'te anahtar-değer çiftlerinden oluşan bir veri yapısıdır. Bu veri yapısı, benzer özellikleri ve fonksiyonları olan nesneleri gruplandırmak için kullanılır. Nesne oluştururken "object literal" kullanılabilir ya da bir constructor fonksiyonu ile oluşturulabilir. Nesne oluşturma sırasında anahtar-değer çiftleri kullanılır ve anahtarlar bir string olmalıdır.
Nesne içindeki elemanlara ulaşmak için, nokta işareti veya köşeli parantez kullanılır. Örneğin, bir insan nesnesi içindeki ad özelliğine erişmek için "insan.ad" veya "insan['ad']" kullanarak erişilebilir. Nesne içinde eleman ekleme, değiştirme ve silme işlemleri de yapılabilir.
Bunun yanı sıra, nesne metotları da kullanılabilir. Nesne metotları, nesne içinde tanımlanmış fonksiyonlardır ve nesnenin sahip olduğu özellikleri veya özelliklerin değerlerini kullanarak bir işlem gerçekleştirir. Nesne metotları, özellikle obje tabanlı programlamada kullanışlıdır.
Nesneler, JavaScript'te oldukça sık kullanılan bir veri yapısıdır ve doğru kullanıldığında kodun daha okunaklı ve düzenli olmasını sağlar. Bu nedenle, nesne oluşturma, özellikleri ve metotları hakkında bilgi sahibi olmak önemlidir.
Set Yapıları
Set yapısı, JavaScript'te eşsiz elemanları barındıran bir veri yapısıdır. Bu yapı, tekrarlanan elemanları engeller ve elemanları ekleme veya çıkarma işlemleri için özel yöntemler sağlar. Bir Set nesnesi oluşturmak için, Set() yapıcısını kullanabilirsiniz.
Örneğin:
let mySet = new Set();
Bu kod, boş bir Set nesnesi oluşturur. Bir Set nesnesine eleman eklemek için, add() yöntemini kullanabilirsiniz.
Örneğin:
mySet.add(1);mySet.add(2);mySet.add("üç");
Bu kod, Set nesnesine bir tamsayı, bir daha tamsayı ve bir dize ekler. Bir Set nesnesinden eleman çıkarmak için ise, delete() yöntemini kullanabilirsiniz.
Örneğin:
mySet.delete(2);
Bu kod, Set nesnesinden 2 sayısını çıkarır. Bir Set nesnesindeki eleman sayısını öğrenmek için, size() yöntemini kullanabilirsiniz.
Örneğin:
mySet.size;
Bu kod, Set nesnesindeki eleman sayısını verir.
Bir Set nesnesi ve bir dizi arasındaki farklar:
- Bir dizi içinde bir öğeyi bulmak için, öğenin pozisyonunu belirlemek için indexOf() yöntemini kullanmanız gerekir. Bir Set içinde bir öğe var mı yok mu öğrenmek için, has() yöntemini kullanabilirsiniz.
- Bir dizi içindeki öğelerin sırası önemlidir. Bir Set içindeki öğelerin sırası önemli değildir.
- Bir dizi, öğeleri tekrar içerebilir. Bir Set, tekrarlanan öğeleri içermez.
Harita (Map) Yapıları
Harita yapısı, JavaScript'te anahtar-değer ilişkisini kullanan bir veri yapısıdır. Nesnelerden farklı olarak, haritaların anahtar ve değerleri arasında doğrudan bir ilişki vardır ve anahtarlar herhangi bir veri tipi olabilir. Harita yapısı, öğelerin ekleme ve çıkarma işlemleri için get(), set(), delete() gibi özel metotları kullanır.
Bir JavaScript haritası oluşturmak için Map() constructor'ının kullanılması gerekir. Örneğin;
let harita = new Map();
Bir haritaya eleman eklemek için set() metodu kullanılır. Örneğin;
harita.set("anahtar", "değer");
Haritadan eleman silmek için delete() metodu kullanılır. Örneğin;
harita.delete("anahtar");
Harita yapısı ve nesneler arasındaki ana fark, haritada anahtar-değer ilişkisi olmasıdır. Nesnelerde anahtarlar sadece dizeler veya semboller olabilirken, haritalarda anahtarlar herhangi bir veri tipi olabilir. Ayrıca haritaların özel metotları vardır ve elemanlar için sıralama yapmadan ekleme ve çıkarma işlemlerini gerçekleştirebilirler.
Generator Fonksiyonları
Generator fonksiyonları, bir fonksiyonun içindeki yürütme durumunu saklayabilen ve bu yürütme durumunu sonraki çağrılarda devam ettirebilen bir JavaScript özelliğidir. Bu sayede uzun veya maliyetli işlemler yürütülürken, işlemin tamamlanması beklenmeden ara verilebilir ve sonraki işlemler için kaynaklar serbest bırakılabilir.
Generator fonksiyonları, function* syntax ile tanımlanır ve yield keywordü ile bir duraklama noktası belirtilir. Bu duraklama noktası, fonksiyonun sonraki çağrısı sırasında yeniden devam edilebilir. Aşağıdaki örnekte, generator fonksiyonu kullanarak sayıların sonsuz bir dizisini oluşturabiliriz.
```function* sayilar() { let i = 0; while (true) { yield i; i++; }}
const iterator = sayilar();
console.log(iterator.next().value); // 0console.log(iterator.next().value); // 1console.log(iterator.next().value); // 2```
Bu örnekte "sayilar" isimli bir generator fonksiyonu tanımlanmıştır. Fonksiyon içinde while döngüsü kullanarak sonsuz bir dizi oluşturulmuştur. Diziyi oluşturmak için "yield" keywordü kullanılmıştır. "sayilar" fonksiyonu sonraki çağrıda i değerini artırarak, "yield" keywordüne kadar olan işlemleri gerçekleştirmiştir.
Generator fonksiyonlarının kullanım alanı oldukça geniştir. Özellikle büyük veri işlemlerinde, verileri işleme sırasında ara duraklamalar vererek kaynakları serbest bırakmak gibi kullanımları mevcuttur. Ayrıca asenkron işlemlerde de sıklıkla kullanılmaktadır.
Generator fonksiyonlarının kullanımı oldukça yararlı ve işlevseldir. Ancak, kullanımı biraz karışık olabilir ve konuya hakim olmadan önce ciddi bir araştırma gerektirebilir.