دروس الوحدة (3/4)
المعلمات الافتراضية والراحة
يتيح لك JavaScript إنشاء معلمات اختيارية (بقيمة افتراضية)
واقبل عددًا متغيرًا من الوسائط باستخدام عامل التشغيل الباقي (...).
المعلمات الافتراضية
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ينتشر في وقت المكالمة
الوجه الآخر لـ ... هو عامل التشغيل spread، الذي "يقسم" المصفوفة إلى وسائط منفصلة في وقت الاتصال:
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.
إظهار التلميح
دالة مجموع (أ، ب = 0) {إرجاع أ + ب؛ }
الحل متاح بعد 3 من المحاولات
تمرين المراجعة
حدّد دالة `mean(...nums)` تُرجع المتوسط الحسابي لوسيطاتها، أو 0 إذا لم يتم تمرير أي منها.
إظهار التلميح
إذا كان nums.length يساوي 0، فسيتم إرجاع 0؛ وإلا الجمع والقسمة.
الحل متاح بعد 3 من المحاولات