CodeBlanks Logo Icon CodeBlanks

arguments nesnesi

JavaScript kursu · Başlangıç · Ders 84/133

Eski koda sıkça rastlanan arguments nesnesini ve neden rest yerine tercih edilmediğini öğrenirsin.

arguments nesnesi

Eski JavaScript kodunda arguments adında bir nesne görürsün. Bu nesne, fonksiyona verilen tüm argümanları içerir ve parametre yazmasan bile ulaşılabilir. Bugün rest parametresi tercih edilir, ama eski kodu okurken arguments'i tanıman gerekir.

Örnek: function add() { return arguments[0] + arguments[1]; }. Burada arguments[0] ilk argümanı, arguments[1] ikinci argümanı verir. add(3, 5) çağrısı 8 döndürür.

Rest tercih edilir

arguments nesnesi dizi benzeridir ama gerçek bir dizi değildir. Bu yüzden forEach, map, filter gibi dizi metodları çalışmaz. Ayrıca arrow fonksiyonlarında arguments bulunmaz.

Bu nedenle modern kodda ...nums gibi rest parametresi tercih edilir. Rest gerçek bir dizi verir, tüm dizi metodları çalışır ve arrow fonksiyonlarında da kullanılabilir. Yeni kod yazarken her zaman rest kullanmalısın.

Uygulama İlk iki argümanı topla

add adında bir fonksiyon tanımla. Parametre yazma. Gövdede arguments nesnesini kullanarak ilk iki argümanın toplamını return arguments[0] + arguments[1] şeklinde döndür. Sonra console.log(add(3, 5)) ile sonucu yazdır.

Örnek çözümü göster
function add() {
  return arguments[0] + arguments[1];
}

console.log(add(3, 5));

Kendini test et

  1. arguments nesnesi için hangisi doğrudur?

    function add() {
      return arguments[0] + arguments[1];
    }
    • Gerçek bir dizi değildir
    • Sadece arrow fonksiyonlarda bulunur
    • ES2023 ile yeni eklenmiştir
    • rest parametresinden daha moderndir
    Cevabı göster

    Gerçek bir dizi değildir — Doğru. arguments dizi benzeri ama gerçek dizi değildir; dizi metodları çalışmaz.

  2. İlk argümana eriş

    function add() {
      return ____ + arguments[1];
    }
    console.log(add(3, 5));
    Cevabı göster
    function add() {
      return arguments[0] + arguments[1];
    }
    console.log(add(3, 5));
  3. arguments ve rest

    arguments
    Dizi değil, dizi benzeri
    ...nums
    Gerçek dizi
    arguments.length
    Argüman sayısı
    nums.forEach
    Dizi metodu çalışır

Başlangıç bölümündeki tüm dersler