मुख्य सामग्री पर जाएं
मॉड्यूल 4 · पाठ 3 का 4पाठ्यक्रम में 15/32~12 min
मॉड्यूल पाठ (3/4)

डिफ़ॉल्ट और बाकी पैरामीटर

जावास्क्रिप्ट आपको पैरामीटर वैकल्पिक बनाने देता है (डिफ़ॉल्ट मान के साथ) और शेष ऑपरेटर (...) के साथ तर्कों की परिवर्तनीय संख्या स्वीकार करें।

डिफ़ॉल्ट पैरामीटर

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

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

डिफ़ॉल्ट केवल तभी लागू होता है जब तर्क undefined हो ("पारित नहीं" मामले सहित)। null या 0 के लिए डिफ़ॉल्ट नहीं सक्रिय होता है:

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

बाकी: ...names

तर्कों की एक परिवर्तनीय संख्या को स्वीकार करने के लिए, उन्हें ... के साथ एक सरणी में एकत्रित करें:

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

फ़ंक्शन के अंदर, numeri एक वास्तविक सरणी है (पुराने फ़ंक्शन का जादुई arguments ऑब्जेक्ट नहीं)।

बाकी अंतिम पैरामीटर होना चाहिए:

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

कॉल के समय फैलाएं

... का दूसरा चेहरा स्प्रेड ऑपरेटर है, जो कॉल के समय एक सरणी को अलग-अलग तर्कों में "विस्फोट" करता है:

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

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

इसे अजमाएं

व्यायाम#js.m4.l3.e1
प्रयास: 0लोड हो रहा है...

एक फ़ंक्शन `sum(a, b)` को परिभाषित करें जहां `b` का डिफ़ॉल्ट मान 0 है। इसे इन दावों को पास करना होगा: sum(5) === 5, sum(2, 3) === 5, sum(0) === 0।

संपादक लोड हो रहा है...
संकेत दिखाएँ

फ़ंक्शन योग (ए, बी = 0) { रिटर्न ए + बी; }

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम की समीक्षा करें

व्यायाम#js.m4.l3.e2
प्रयास: 0लोड हो रहा है...

एक फ़ंक्शन `mean(...nums)` को परिभाषित करें जो इसके तर्कों का अंकगणितीय माध्य लौटाता है, या यदि कोई भी पारित नहीं हुआ है तो 0 लौटाता है।

संपादक लोड हो रहा है...
संकेत दिखाएँ

यदि nums.length 0 है, तो 0 लौटें; अन्यथा योग करें और भाग दें।

3 प्रयासों के बाद समाधान उपलब्ध है