مرکزی مواد پر جائیں
ماڈیول 4 · سبق 3 از 4کورس میں 15/32~12 min
ماڈیول اسباق (3/4)

پہلے سے طے شدہ اور باقی پیرامیٹرز

JavaScript آپ کو پیرامیٹرز اختیاری بنانے دیتا ہے (پہلے سے طے شدہ قدر کے ساتھ) اور باقی آپریٹر (...) کے ساتھ دلائل کی متغیر تعداد کو قبول کریں۔

پہلے سے طے شدہ پیرامیٹرز

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۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

فنکشن sum(a, b = 0) { واپس a + b; }

3 کوششوں کے بعد حل دستیاب ہے۔

ورزش کا جائزہ لیں۔

ورزش#js.m4.l3.e2
کوششیں: 0لوڈ ہو رہا ہے…

ایک فنکشن `میان(...نمز)` کی وضاحت کریں جو اس کے آرگیومینٹس کا ریاضی کا مطلب لوٹاتا ہے، یا 0 اگر کوئی پاس نہیں ہوتا ہے۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

اگر nums.length 0 ہے، 0 واپس کریں؛ دوسری صورت میں جمع اور تقسیم.

3 کوششوں کے بعد حل دستیاب ہے۔