Function Parameters

وقتی یک تابع تعریف می‌کنیم، می‌تونیم مقادیری به اون پاس بدیم. این مقادیر پارامتر (parameter) نام دارن.

1️⃣ پارامترهای عادی

function greet(name) { return "Hello " + name; } console.log(greet("Ali")); // Hello Ali console.log(greet()); // Hello undefined

🔹 اگه مقداری پاس ندیم، undefined می‌گیره.

2️⃣ پارامترهای پیش‌فرض (Default Parameters – ES6)

function greet(name = "Guest") { return "Hello " + name; } console.log(greet("Sara")); // Hello Sara console.log(greet()); // Hello Guest

🔹 با این کار مطمئن می‌شیم همیشه یک مقدار داشته باشیم.

3️⃣ تعداد پارامترهای متفاوت

تابع‌ها می‌تونن هر تعداد پارامتر داشته باشن:

function sum(a, b, c) { return a + b + c; } console.log(sum(2, 3, 4)); // 9 console.log(sum(2, 3)); // NaN (چون c = undefined)

4️⃣ شیء arguments

تمام مقادیری که به تابع پاس داده می‌شن، داخل یک شیء به نام arguments ذخیره می‌شن (فقط در فانکشن‌های معمولی، نه arrow function).

function showArgs(a, b) { console.log(arguments); } showArgs(10, 20, 30); // [10, 20, 30]

5️⃣ پارامتر Rest (...)

اگر ندونیم چندتا آرگومان پاس داده می‌شه، می‌تونیم از Rest Parameters استفاده کنیم:

function sum(...numbers) { return numbers.reduce((total, n) => total + n, 0); } console.log(sum(1, 2, 3, 4, 5)); // 15

🔹 اینجا همه آرگومان‌ها توی یک آرایه جمع می‌شن.

6️⃣ ترکیب پارامتر عادی + Rest

function greet(greeting, ...names) { return greeting + " " + names.join(", "); } console.log(greet("Hello", "Ali", "Sara", "Reza")); // Hello Ali, Sara, Reza

📌 جمع‌بندی

  • اگر مقداری پاس ندیم → undefined می‌گیره.

  • می‌تونیم Default Parameters تعریف کنیم.

  • با arguments همه ورودی‌ها رو می‌بینیم.

  • با Rest Parameters (...) می‌تونیم هر تعداد ورودی داشته باشیم.