JavaScript Dersleri

JavaScript’te Rest Operatörü

eminbasbayan

eminbasbayan

4 dk okuma
JavaScript rest operatörü kullanımı, üç nokta sembolü ve array/object destructuring örneği
🔍 Büyütmek için tıklayın

Bir önceki yazımızda, destructuring özelliğini kullanarak dizilerden ve objelerden nasıl kolayca veri alabildiğimizi öğrenmiştik. Bu yazıda ise destructuring işlemini bir adım öteye taşıyıp, geri kalan değerleri yakalamamıza olanak tanıyan rest operatörü (...) özelliğini inceleyeceğiz.

Rest Operatörü Nedir?

JavaScript’te ... (üç nokta) sembolü iki farklı şekilde kullanılabilir:

  1. Rest operatörü olarak: Geriye kalan değerleri toplar.
  2. Spread operatörü olarak: Değerleri bir yapının içine “açar”.

Bu yazıda sadece rest kısmına odaklanacağız.

Rest operatörü, destructuring işlemi sırasında geri kalan tüm elemanları bir araya toplayarak tek bir dizi veya obje içinde tutmamızı sağlar.

Bunu özellikle, bir diziden veya objeden yalnızca belirli kısımları almak istediğimizde kullanırız.

Dizi Destructuring ile Rest Operatörü

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

const sinavSonuclari = [85, 90, 78, 92, 88];

Bu diziden sadece ilk üç sonucu almak, kalanları ise başka bir değişkende toplamak istiyorsak rest operatörünü şöyle kullanabiliriz:

const [birinci, ikinci, ucuncu, ...geriKalan] = sinavSonuclari; console.log(birinci); // 85 console.log(ikinci); // 90 console.log(ucuncu); // 78 console.log(geriKalan); // [92, 88]

Burada:

  • İlk üç eleman ayrı değişkenlere atandı,
  • ...geriKalan ifadesi, dizinin geri kalan elemanlarını yeni bir dizi içinde topladı.

🧠 Not: Rest operatörü daima en sonda kullanılmalıdır.

Aksi halde JavaScript hata verir çünkü hangi elemanların “geri kalan” olduğunu anlayamaz.

Rest Operatörünü Kullanarak Dizi Elemanlarını Ayırma

Rest operatörü, özellikle uzun dizilerde bazı kısımları ayırıp kalanlarla işlem yapmak için çok kullanışlıdır.

Örneğin:

const isimler = ["Ali", "Ayşe", "Mehmet", "Zeynep", "Hasan"]; const [ilk, ikinci, ...digerleri] = isimler; console.log(ilk); // Ali console.log(ikinci); // Ayşe console.log(digerleri); // ["Mehmet", "Zeynep", "Hasan"]

Bu sayede, dizinin ilk iki elemanını ayrı olarak alırken, geri kalan tüm elemanları tek bir dizide tutabiliyoruz.

Obje Destructuring ile Rest Operatörü

Rest operatörü sadece dizilerde değil, objelerde (object) de kullanılabilir.

Bu durumda, objeden bazı alanları çıkarır, kalan tüm property’leri yeni bir obje içinde toplar.

Örneğin:

const kullanici = { ad: "Selin", yas: 24, sehir: "İstanbul", universite: "Uludağ Üniversitesi" }; const { ad, ...kalanBilgiler } = kullanici; console.log(ad); // "Selin" console.log(kalanBilgiler); // { yas: 24, sehir: "İstanbul", universite: "Uludağ Üniversitesi" }

Burada ad property'sini ayrı aldık, geri kalan tüm property’leri kalanBilgiler adlı yeni bir obje içinde topladık.

Bu, özellikle büyük JSON verileriyle çalışırken çok işe yarar.

Rest Operatörü ile Fonksiyon Parametreleri

Rest operatörünün sıkça kullanıldığı bir diğer alan ise fonksiyon parametreleridir.

Bir fonksiyona kaç tane argüman geleceğini bilmiyorsak, rest operatörüyle hepsini tek bir diziye toplayabiliriz:

function toplam(...sayilar) { return sayilar.reduce((a, b) => a + b, 0); } console.log(toplam(10, 20, 30)); // 60 console.log(toplam(5, 15, 25, 35)); // 80

Burada ...sayilar, fonksiyona gelen tüm argümanları bir dizi haline getiriyor.

Bu sayede ister 3 ister 10 parametre gönderelim, fonksiyon sorunsuz çalışıyor.

Rest Operatörünün Özellikleri ve Dikkat Edilmesi Gerekenler

  1. Her zaman en sonda olmalıdır:

    Destructuring sırasında ... ifadesi yalnızca son sırada kullanılabilir.

    const [ilk, ...kalan, son] = [1, 2, 3, 4]; // ❌ Hata verir
  2. Yeni bir kopya oluşturur:

    Rest operatörü, dizinin veya objenin orijinal halini değiştirmez; yeni bir kopya oluşturur.

  3. Sınırsız sayıda elemanı kapsayabilir:

    Rest operatörüyle kaç eleman kalırsa kalsın hepsi tek bir değişkende toplanabilir.

Özetle

Rest operatörü (...), destructuring işlemlerinde geri kalan verileri bir araya toplamak için kullanılır.

Hem dizilerde hem objelerde çok güçlü bir araçtır.

  • Dizilerde: Geriye kalan elemanları yeni bir dizi olarak toplar.
  • Objelerde: Geriye kalan property’leri yeni bir obje olarak toplar.
  • Fonksiyonlarda: Parametre sayısı belirsiz olduğunda tüm argümanları tek bir diziye dönüştürür.
  • Orijinal veri değişmez: Rest işlemi, orijinal dizi veya objeyi etkilemez.

Bu özellik, hem pratik hem de modern JavaScript yazımında oldukça yaygındır.

Karmaşık verilerle çalışırken kodunuzu daha sade, okunabilir ve güçlü hale getirir.

Etiketler

#Eğitimler#JavaScript Dersleri

İlgili Yazılar

Bu konuyla ilgili diğer yazılarımızı da inceleyebilirsiniz

Web Geliştirmede Neden JavaScript'e İhtiyacımız Var?
JavaScript Dersleri

Web Geliştirmede Neden JavaScript'e İhtiyacımız Var?

Web geliştirme, temel olarak üç ana yapı taşı üzerine kuruludur: **HTML, CSS ve JavaScript**. Bu üçlüden **HTML**, sayfanın iskeletini oluşturur, **CSS**, tasarımı ve görsel düzenlemeleri yapar

2 dk
JavaScript'e Giriş: JavaScript Nedir?
JavaScript Dersleri

JavaScript'e Giriş: JavaScript Nedir?

Web geliştirme yolculuğunuzda büyük bir adım atıyorsunuz! HTML ve CSS ile statik web sayfaları oluşturmayı öğrendiniz, ancak şimdi JavaScript ile sayfanıza hareket ve etkileşim katmanını eklemeye hazırsınız. JavaScript, web sayfalarını dinamik hale getiren ve kullanıcı etkileşimlerini yöneten

3 dk
JavaScript Değişkenler (Variables) Nedir?
JavaScript Dersleri

JavaScript Değişkenler (Variables) Nedir?

JavaScript, web geliştirme dünyasının en önemli dillerinden biridir. Dinamik web siteleri, interaktif uygulamalar, oyunlar ve animasyonlar gibi birçok alanda kullanılır. Ancak, bu tür gelişmiş uygulamalar oluşturabilmek için önce JavaScript'in temellerini anlamak gerekir. Bu

4 dk
JavaScript İlkel (Primitive) Veri Tipleri
JavaScript Dersleri

JavaScript İlkel (Primitive) Veri Tipleri

JavaScript, modern web geliştirmede vazgeçilmez bir programlama dilidir. Web sitelerini daha dinamik hale getirmek, etkileşim eklemek ve hatta oyunlar ve uygulamalar geliştirmek için kullanılır. Ancak, bu eğlenceli ve güçlü özelliklere ulaşmadan önce, JavaScript'in temellerin

4 dk
JavaScript'te Sayılar ve Matematiksel Operatörler
JavaScript Dersleri

JavaScript'te Sayılar ve Matematiksel Operatörler

JavaScript, modern web geliştirmede en yaygın kullanılan programlama dillerinden biridir. Bu dilde çalışırken sayılarla sıkça işlem yaparız. İster bir hesap makinesi uygulaması geliştiriyor olun, ister bir oyundaki puan sistemini kodluyor olun, sayılar kaçınılmaz bir parçadır. JavaScri

4 dk
JavaScript'te Boolean Veri Tipi
JavaScript Dersleri

JavaScript'te Boolean Veri Tipi

JavaScript'ı öğrenmeye yeni başlayanlar için veri tipleri oldukça önemlidir. Bu yazıda, en temel veri tiplerinden biri olan **Boolean (mantıksal) değerleri** inceleyeceğiz. Boolean değerleri, programlamada sıklıkla kullanılan ve kodlarımızın man

3 dk