మాడ్యూల్ పాఠాలు (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కాల్ సమయంలో వ్యాప్తి చెందుతుంది
... యొక్క మరొక ముఖం స్ప్రెడ్ ఆపరేటర్, ఇది కాల్ సమయంలో ప్రత్యేక ఆర్గ్యుమెంట్లుగా శ్రేణిని "పేలుస్తుంది":
function somma(a, b, c) {
return a + b + c;
}
const nums = [1, 2, 3];
somma(...nums); // 6, equivalent to somma(1, 2, 3)దీనిని ప్రయత్నించండి
`సమ్(ఎ, బి)` ఫంక్షన్ను నిర్వచించండి, ఇక్కడ `బి`కి డిఫాల్ట్ విలువ 0 ఉంటుంది. ఇది తప్పనిసరిగా ఈ నిర్థారణలను పాస్ చేయాలి: సమ్(5) === 5, సమ్(2, 3) === 5, సమ్(0) === 0.
సూచనను చూపించు
ఫంక్షన్ మొత్తం(a, b = 0) {రిటర్న్ a + b; }
3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది
వ్యాయామం సమీక్షించండి
దాని ఆర్గ్యుమెంట్ల యొక్క అంకగణిత సగటును అందించే ఫంక్షన్ `మీన్(...నమ్స్)` లేదా ఏదీ పాస్ కాకపోతే 0ని నిర్వచించండి.
సూచనను చూపించు
nums.length 0 అయితే, 0ని తిరిగి ఇవ్వండి; లేకపోతే మొత్తం మరియు భాగహారం.
3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది