JAVASCRIPT’IN TARIHÇESI

Javascript Rest Kavramı

Javascript Rest bize ne gibi avantajlar sağlar ? Kodun okunmasını nasıl kolaylaştırır ?

--

Bu yazıyı daha önceden yazmış olduğum Javascript’in Tarihçesi yazısının bir devamı olarak yazıyorum. Bir çok kavramı tek bir yazıda ele almanın yaratacağı karmaşıklıktan kaçmak için bu yönteme başvurdum. Bu yazılardaki amacım önceden Javascript’in varolan hangi özelliklerinin yetmediğini ve bu geliştirmeyle neyi hedeflediklerini anlatacağım.

Özetle bu yazımda aşağıdaki kavramları anlatmaya çalışacağım.

  • Javascript Rest Nedir?
  • Javascript Rest Sağladığı Avantaj ve Dezavantajlar nelerdir?
  • Arkaplanda Rest Nasıl Çalışır ?

Rest Nedir ?

Rest kavramı zaten bildiğimiz diğer dillerde de sıkça kullanılan bir kavram. Örneğin C, Java dillerinden daha uygulamanın başlangıcı olan main örnek vermek istiyorum.

Aşağıdaki C programında argc argüman sayısı, argv array içerisinde geçirilen argümanlardır. Burda program ilk çalıştırılırken dışarıdan geçirilecek parametreler bu argüman array içerisinde main fonksiyonuna geçirilir.

//Sample C code
int main( int argc, char *argv[] ) {

Aynısına birde Java programlama dilinde bakalım.

//Sample Java code
public class SampleJava {
public static void main(String[] args) {
for(int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
}
}
//Sample Code
public class SampleJava {
public static void main(String ...args) {
for(int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
}
}

Daha uygulama başlar başlamaz bu argümanları parametre olarak geçirir. Burda daha sonradan Java dilinde varargs(…) olarak 0 veya daha fazla parametreyi array olarak geçme olayına sağlattı.

Yukarıda anlattığım durum fonksiyonlara her zaman bir array parametre olarak geçirme ihtiyacımız olmuştur. Bu sırada bunun yazımını [] array ile yapmak yerine 3 nokta (…) ile yani rest ile yapmak bize ne gibi bir avantaj sağlar.

Gelin bunu bir örnek üzerinden anlatalım. Elimizde bir sayı array olsun ve bunun sonuçlarını bulmaya çalışalım.

function sum(numbers){
let toplam=0; numbers.forEach(el=>toplam+=el);return toplam;
}
console.log(sum([2,4,6,5])); //17

Kodu Rest ile tekrar yazalım. aşağıdaki kodda görüldüğü gibi fonksiyonumuz değişmedi ama çağıran kısımda array nesnesine ihtiyacımız olmadan parametreleri istediğimiz gibi fonksiyona geçirebilmemize olanak sağladı.

function sum(...numbers){
let toplam=0; numbers.forEach(el=>toplam+=el);return toplam;
}
console.log(sum(2,4,6,5))//17

Javascript Rest’in Sağladığı Avantaj ve Dezavantajlar Nelerdir ?

Kodun o aşamasında elinizde bir array yoksa bunun için ekstradan array oluşturma kodundan sizi kurtarmış olur. Bu size avantaj sağlar. Fakat.siz bu rest önüne arkasına parametreler eklemek isterseniz. (x, y, …numbers) şeklinde rest önüne başka değişkenler koymak isterseniz bu mümkün fakat (…numbers, x, y) sonrasına koymak isterseniz bunu yapamazsınız buda bir dezavantaj. Siz kodu yazarken bu avantaj ve dezavantajlarınızı bilerek kodu yazmanız gerekir.

Arkaplanda Rest Nasıl Çalışır ?

Peki rest kullanmadan bu işlemleri yapamaz mıyız? Burda function hiç parametre almasa bile değer olarak geçirdiğimiz parametrelere arguments olarak erişebiliriz. Array.prototype.slice.call bu kısma değer olarak geçirilen arguments array nesnesi oluşturur.

function sum() {
const numbers = Array.prototype.slice.call(arguments);
let toplam=0; numbers.forEach(el=>toplam+=el);return toplam;
}
console.log(sum(2,4,6,5))//17

Değer olarak geçirilen arguments nasıl bir şey acaba ? Array dönüştürülebilecek bir map objesi

{ 0:2,1:4,2:6,3:5 }

Aslında arka planda yazılan algoritma şu şekilde … point varsa bunun öncesindeki değerleri argüman nesnesininde çıkar ve bunu array dönüştür.

Okumaya Devam Et 😃

Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.

--

--