Şub.17

Hızlandırılmış EcmaScript 6+ Dersleri – 5: Genişletilmiş Parametre Kullanımları


EcmaScript 6 ile fonksiyonlar için farklı farklı parametre kullanım yöntemleri geliştirilmiştir. Bunlar hem kullanımı kolaylaştırmış, hem de gereksiz kod kullanımını azaltmıştır.

Default (Varsayılan) Parametreler

Bildiğiniz üzere fonksiyonlara parametreler tanımlayabiliyoruz ve fonksiyonu çağırdığımız yerde de parametre değerlerini verebiliyoruz. EcmaScript 6 standartlarında bir fonksiyonun parametrelerini default, yani varsayılan değerleri ile tanımlayabiliriz. Böylece fonksiyonu çağırırken bazı hallerde parametre değerini vermeden de kullanabiliriz.

let daireAlanHesapla = (r, pi= 3.1415) => console.log("Dairenin alanı: " + pi * r * r);
daireAlanHesapla(4)  // Dairenin alanı 50.264
daireAlanHesapla(4, 3)  // Dairenin alanı 48

Örneği incelediğimizde bir arrow fonksiyonu oluşturulduğunu ve iki adet parametre aldığını görüyoruz. Parametre değerlerinden ilki r yarıçap değerini, diğeri de PI değerini alıyor. PI değeri varsayılan değeri ile 3.1415 olarak tanımlanmış. Normalde daireAlanHesapla fonksiyonu çağırıldığında iki parametreyi de girmek gerekiyor. İlk kullanımda sadece 4 değeri parametre olarak girilmiş ve r’ye aktarılmış. İkinci parametre girilmediği için varsayılan 3.1415 değeri = operatörü ile atanmış. İkinci kullanımda da PI değeri yuvarlatılarak 3 değeri ile atanmış ve bu değer varsayılan değeri ezerek fonksiyon içinde kullanılmış. Bu nedenle de her iki kullanımda sonuç farklı farklı değerlerle console.log() içinde yazdırılmış.

Rest Parametresi

Rest parametresi … (3 nokta) olarak tanımlanmaktadır. Obje veya dizi olarak verilen bir değişkenin içindeki elemanları sırası ile kendisinden önce tanımlanan parametrelere atar.

Örneğin toplama işlemi yapan bir fonksiyon düşünelim…

let topla = (a, b) => a + b;
console.log( topla(1, 2, 3, 4, 5) ); //3

topla isimli fonksiyona 5 adet parametre gönderilmiş, ancak bu fonksiyon sadece ilk iki parametreyi a ve b değerlerine atayıp a ve b toplamını geri döndürmüş. Normalde fonksiyona sırası ile a, b, c, d, e şeklinde diğer parametreleri de eklesek sorun çözülür. Ancak bu tür çözümler kullanışlı değildir ve geliştiriciyi de bir noktada yarı yolda bırakır. Bunun yerine fonksiyona tüm değerleri göndersek, sırası ile bu değerleri rest parametresi ile okusak nasıl olur…

let topla = (a, b, ...sayilar) => console.log(a, b, sayilar);
topla(1, 2, 3, 4, 5);  // 1, 2, [3, 4, 5]

Bu kullanımda operatörünü sayilar isimli bir parametrenin önüne ekledik (boşluk olmayacak). Böylece parametre sayısından fazla gelen değerler bir dizi şeklinde toplandı. Sonuç olarak a=1, b=2 oldu, sayilar = [3, 4, 5] değerleri de dizi olarak değişkene aktarıldı.

Örneğimizi for of döngüsü kullanarak fonksiyonumuzu daha da pratik bir hale getirelim.

let topla = (...sayilar) => {
  let toplam = 0;
  for (let sayi of sayilar) toplam += sayi;
  return toplam;
}
console.log( topla(1, 2, 3, 4, 5 ) ); //15

topla fonksiyonunda sayilar parametresine alınan tüm değerler for of döngüsü ile toplanıp konsolda yazdırıldı.

Yukarıdaki örnekte farklı bir şekilde for kapsam alanı kullandık. Döngü içerisinde sadece tek satırlık bir kod ( toplam +=sayi; ) olduğu için {} parantezler ile blok açılmadan direkt olarak döngünün yanına işlemi yapan kodu yazdık. Bu yazım şekli bazen okunabilirliği zorlaştırabilir, ancak pratik kod yazma açısından  daha işlevseldir.

Makale serimizin diğer konuları şunlar olacaktır:


Web Tasarımı ve Web Programlama 2020

Yorum bırak

Yorum