Rest parametreleri
- Node.js kursu
- Başlangıç
- Ders 75/116
- 5 dk
...args ile değişken sayıda argüman almayı öğrenirsin.
Rest parametreleri
Rest parametresi, değişken sayıda argümanı tek bir dizi olarak toplar. Parametre adından önce ... yazılarak tanımlanır. Çağrılan fonksiyon bu argümanları dizi halinde alır.
Sözdizimi: function sum(...nums) { return nums.reduce((a, b) => a + b, 0); }. Bu fonksiyon sum(1, 2, 3) çağrısında nums değişkeni [1, 2, 3] olur; sonuç 6'dır. İstediğin kadar argüman geçebilirsin.
Rest parametresi her zaman parametre listesinin sonunda olmalıdır. Birden fazla rest parametresi yazılamaz. function f(a, ...rest) geçerlidir; function f(...rest, a) söz dizimi hatasıdır.
Rest ve arguments farkı
JavaScript'te rest parametresinden önce arguments adında eski bir nesne vardı. Tüm argümanları içerir ama gerçek bir dizi değildir; map, filter gibi dizi metotları çalışmaz. Modern kodda rest parametresi tercih edilir.
Rest parametresi gerçek bir dizidir: nums.map(...), nums.length, nums[0] gibi işlemler doğrudan çalışır. Ayrıca yalnızca 'kalan' argümanları alır; rest'ten önce gelen isimli parametreler dışarıda kalır.
Örnek: function f(first, ...rest). Burada first ilk argümanı, rest ise geri kalanların dizisini alır. f('a', 'b', 'c') çağrısında first='a', rest=['b','c'] olur.
Uygulama Değişken sayıda sayı topla
sum(...nums) fonksiyonunu tanımla. Gövdesi nums dizisini reduce ile (başlangıç 0) toplasın ve sonuçu döndürsün. sum(10, 20, 30, 40) çağrısının sonuçunu console.log ile yazdır.
Başlangıç kodu
// sum fonksiyonunu rest parametreyle tanımla ve çağrı sonuçunu yazdırÖrnek çözüm
function sum(...nums) {
return nums.reduce((a, b) => a + b, 0);
}
console.log(sum(10, 20, 30, 40));Beklenen çıktı
100
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Rest parçalarını eşle
| Kavram | Anlamı |
|---|---|
... |
Rest operatörü |
nums |
Toplanan argümanların adı |
[1, 2, 3] |
nums değişkeninin değeri |
son parametre |
Rest'in konumu |
2 Rest parametresi ne toplar?
- Tüm nesneleri
- İlk argümanı
- Kalan argümanları diziye Doğru cevap
- Yalnızca sayıları
Açıklama: rest kalan tüm argümanları tek diziye toplar.
3 Reduce ile topla
function sum(...nums) {
return nums.____((a, b) => a + b, 0);
}
function sum(...nums) {
return nums.reduce((a, b) => a + b, 0);
}
Açıklama: nums.reduce ile dizi tek değere indirgenir.