Javascript Harikaları-1 : Rest Parameters.

Tahir KARDAK
3 min readFeb 13, 2019

--

Javascript’in güzelliklerinden bahsedeceğim yazı dizisine “Rest Parameters” ile başlıyorum. Yazı dizisinin kaç bölümden olacağını bilmiyorum. Belirli aralıklarda yazı dizisine yeni yazılar ekleyeceğim.

Daha önceki yazılarımda vermiş olduğum örneklerde Rest Parameters özelliğini kullanmıştım. Şimdi bu güzelliğin kendisini tanıyıp, yeteneklerine bir bakalım. Hazırsanız başlıyorum.

“Kalan Tüm Parametreler”

Türkçe çevirisi biraz “Alexsander Confused(Karşık İskender)” gibi oldu ama yakın bir çeviri olduğunu düşünüyorum. Rest Rapameters için Javascript dokümanı ise şu şekilde bir tanım yapıyor.

Rest Parameters: Fonksiyonlara sınır sayısı olmadan parametre geçmeye olanak verir.

ES6’dan önce bu iş, her bir fonksiyon için sağlanan argumentdeğişkenine bir kaç faklı işlem (arguments’idiziye çevirme işlemleri) uygulandıktan sonra benzer işlemi yapabiliyor. ES6 ile birlikte bu işlem daha kolay bir şekilde yapabiliyoruz. Fonksiyona parametre olarak verilen “Rest Parameters” fonksiyonun içinde standart javascript dizisine dönüştürülür. Dizilerde kullanılan; map, reduce, filter vb fonksiyonlar Rest Paramters’a uygulanabilir. Fonksiyonda “Rest Parameters” “…”(üç nokta) ile gösterilir.

Rest Parameters

Konun daha iyi anlaşılması için örneklere geçelim isterseniz.

Örnek-1: Çarpma işlemi yapan bir fonksiyonu “Rest Parameters” olmadan tanımlayalım ve ortaya çıkan durumlara bakalım. Denemek için tıklayınız .

“ carpmaIslemi” işlemi fonksiyonu 3 parametre almaktadır. Fonksiyona 3 parametre eksiksiz bir şekilde verilirse fonksiyon çalışmaktadır. Eğer 3 den az parametre verilirse sonuc “ NaN”, 3 den çok parametre verilirse 3. parametreden sonraki parametreler hesaplama dışında kalır (Destructuring). “carpmaIslemi” fonksiyonunu daha esnek kullanabilmek için “Rest Parameters” ile işlem yapabiliriz. Denemek için tıklayınız.

Dikkat:

Rest paramters kullanırken dikkat edilmesi gereken önemli hususlardan bahsetmenin tam zamanı.

  1. Rest paramters fonskiyonun son parametresi olmalı. Hatalı kullanımı denemek için tıklayınız. Eğer aşağıdaki gibi bir kod yazarsanız, “SyntaxError: Rest parameter must be last formal parameter” şeklinde hata mesajı alınır.

2. Bir fonksiyonda sadece bir tane Rest parameters kullanılabilir. Hatalı kullanımı denemek için tıklayınız. Eğer aşağıdaki gibi bir kod yazarsanız, “SyntaxError: Rest parameter must be last formal parameter” şeklinde hata mesajı alınır.

3. Nesne içerisinde kullanacağımız “setter” bölümünde rest parametresi kullanılamaz. Eğer aşağıdaki gibi bir kod yazarsanız, “SyntaxError: Setter function argument must not be a rest parameter” şeklinde hata mesajı alınır. Hatalı kullanımı denemek için tıklayınız.

Örnek-2: Birden çok parametre alan fonksiyonda Rest Parameters kullanımı. Denemek için tıklayınız.

Fonksiyona verdiğimiz “restParamaters” fonksiyonun içinde Javascript dizisine dönüştürüldü. 4. satırın çıktısı [“Javascriptte”, “çok”, “kullanışlı”, “fonksiyondur”] javascript dizisi şeklinde olacaktır Eğer “ restParamaters” parametresi fonksiyona verilmezse boş bir diziye dönüştürülecek. 12. satırda “ restParamaters” set edilmiyor. Çıktı “[]” şeklinde olacaktır.

Aşağıdaki örneklerde dizilerde kullanılan fonksiyonların Rest Parameters ile kullanımı gösterilmiştir.

Örnek-3: Fonksiyona verilen Rest Parameters ‘in uzunluğunu bulan fonksiyon. Denemek için burayı tıklayınız.

Örnek-4: Parametre olarak verilen Rest Parameters daki değeri bir katsayı değeri ile çarpan fonksiyon. Denemek için tıklayınız.

Fonksiyonda ilk parametre katsayı olarak kullanılacak. Diğer kalan parametreler sırası ile bu katsayı ile çarpılacak ve sonuç javascript dizisi olarak dönecektir.

Örnek-5: Parametre olarak verilen Rest Parameters daki değerleri sıralayan fonksiyon. Denemek için tıklayınız.

Javascript’in diğer güzelliklerinde görüşürüz.

Kaynak:

--

--