মডিউল পাঠ (3/4)
ডিফল্ট এবং বিশ্রাম পরামিতি
জাভাস্ক্রিপ্ট আপনাকে প্যারামিটারগুলি ঐচ্ছিক করতে দেয় (একটি ডিফল্ট মান সহ)
এবং বাকি অপারেটরের (...) সাথে আর্গুমেন্টের একটি ভেরিয়েবল নম্বর গ্রহণ করুন।
ডিফল্ট পরামিতি
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 আছে। এটি অবশ্যই এই দাবিগুলি পাস করবে: যোগফল(5) === 5, যোগফল(2, 3) === 5, যোগফল(0) === 0।
ইঙ্গিত দেখান
ফাংশনের যোগফল(a, b = 0) { ফেরত a + b; }
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ
ব্যায়াম পর্যালোচনা করুন
একটি ফাংশন `মান (...সংখ্যা)` সংজ্ঞায়িত করুন যা তার আর্গুমেন্টের গাণিতিক গড় প্রদান করে, অথবা কোনোটি পাস না হলে 0।
ইঙ্গিত দেখান
nums.length 0 হলে, 0 ফেরত দিন; অন্যথায় যোগফল এবং ভাগ।
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ