שיעורי מודול (3/4)
פרמטרי ברירת מחדל ומנוחה
JavaScript מאפשר לך להפוך פרמטרים אופציונליים (עם ערך ברירת מחדל)
וקבל מספר משתנה של ארגומנטים עם האופרטור rest (...).
פרמטרי ברירת מחדל
function saluta(nome, prefisso = 'Ciao') {
return `${prefisso}, ${nome}!`;
}
saluta('Anna'); // 'Ciao, Anna!'
saluta('Marco', 'Buongiorno'); // 'Buongiorno, Marco!'ברירת המחדל חלה רק כאשר הארגומנט הוא undefined (כולל המקרה "לא עבר").
עבור null או 0 ברירת המחדל לא מתחילה:
function f(x = 10) {
return x;
}
f(); // 10
f(undefined); // 10
f(null); // null
f(0); // 0מנוחה: ...names
כדי לקבל מספר משתנה של ארגומנטים, אסוף אותם למערך עם ...:
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בתוך הפונקציה, numeri הוא מערך אמיתי (לא האובייקט הקסום arguments של פונקציות ישנות).
השאר חייב להיות הפרמטר האחרון:
function f(primo, ...altri) {
/* ok */
}
// function f(...altri, ultimo) {} // SyntaxErrorמורחים בזמן שיחה
הפנים השניות של ... הוא האופרטור מרחיק, ש"מפוצץ" מערך לארגומנטים נפרדים בזמן שיחה:
function somma(a, b, c) {
return a + b + c;
}
const nums = [1, 2, 3];
somma(...nums); // 6, equivalent to somma(1, 2, 3)נסה את זה
הגדר פונקציה `sum(a,b)` כאשר ל-`b` יש ערך ברירת מחדל של 0. היא חייבת לעבור את ההצהרות האלה: sum(5) === 5, sum(2, 3) === 5, sum(0) === 0.
הצג רמז
function sum(a, b = 0) { return a + b; }
הפתרון זמין לאחר 3 ניסיונות
סקירת התרגיל
הגדר פונקציה `mean(...nums)` שמחזירה את הממוצע האריתמטי של הארגומנטים שלה, או 0 אם אף אחד לא עובר.
הצג רמז
אם nums.length הוא 0, החזר 0; אחרת לסכם ולחלק.
הפתרון זמין לאחר 3 ניסיונות