Ana içeriğe geç
Modül 4 · Ders 3 ders 4Kurstaki 15/32~12 min
Modül dersleri (3/4)

Varsayılan ve dinlenme parametreleri

JavaScript, parametreleri isteğe bağlı (varsayılan değerle) yapmanıza olanak tanır ve dinlenme operatörüyle (...) değişken sayıda bağımsız değişkeni kabul edin.

Varsayılan parametreler

JS
function saluta(nome, prefisso = 'Ciao') {
  return `${prefisso}, ${nome}!`;
}

saluta('Anna'); // 'Ciao, Anna!'
saluta('Marco', 'Buongiorno'); // 'Buongiorno, Marco!'

Varsayılan yalnızca bağımsız değişken undefined ("geçmedi" durumu dahil) olduğunda geçerlidir. null veya 0 için varsayılan değer değildir:

JS
function f(x = 10) {
  return x;
}
f(); // 10
f(undefined); // 10
f(null); // null
f(0); // 0

Dinlenme: ...names

Değişken sayıda argümanı kabul etmek için bunları ... ile bir dizide toplayın:

JS
function somma(...numeri) {
  let totale = 0;
  for (const n of numeri) totale += n;
  return totale;
}

somma(); // 0
somma(5); // 5
somma(1, 2, 3, 4); // 10

Fonksiyonun içinde, numeri gerçek bir dizidir (eski fonksiyonların sihirli arguments nesnesi değildir).

Gerisi son parametre olmalıdır:

JS
function f(primo, ...altri) {
  /* ok */
}
// function f(...altri, ultimo) {} // SyntaxError

Görüşme sırasında yayılma

...'un diğer yüzü, çağrı zamanında bir diziyi ayrı argümanlara "patlayan" spread operatörüdür:

JS
function somma(a, b, c) {
  return a + b + c;
}

const nums = [1, 2, 3];
somma(...nums); // 6, equivalent to somma(1, 2, 3)

Deneyin

Egzersiz#js.m4.l3.e1
Denemeler: 0Yükleniyor…

'b'nin varsayılan değeri 0 olan bir 'toplam(a, b)' işlevi tanımlayın. Şu iddiaları geçmelidir: toplam(5) === 5, toplam(2, 3) === 5, toplam(0) === 0.

Düzenleyici yükleniyor…
İpucu göster

function toplam(a, b = 0) { return a + b; }

3 denemeden sonra çözüm mevcut

Alıştırmayı gözden geçirin

Egzersiz#js.m4.l3.e2
Denemeler: 0Yükleniyor…

Bağımsız değişkenlerinin aritmetik ortalamasını veya hiçbiri iletilmezse 0'ı döndüren bir 'mean(...nums)' işlevi tanımlayın.

Düzenleyici yükleniyor…
İpucu göster

Sayı.uzunluk 0 ise 0 değerini döndürün; aksi halde topla ve böl.

3 denemeden sonra çözüm mevcut