در حال بارگذاری...

پارامترهای تابع

جلسهٔ قبل کار را زیر یک اسم بسته‌بندی کردید؛ پرانتزها خالی ماندند. برنامهٔ واقعی معمولاً ورودی می‌خواهد — اسم، جمع، پیام — تا همان بدنه با مقدارهای مختلف کار کند. آن جاهای خالیِ نام‌دار همان پارامترها هستند. مقداری که موقع صدا می‌دهید آرگومان است.

پارامتر و آرگومان

وقتی می‌نویسید function greet(name) { … }، name یک پارامتر است: اسم محلی داخل بدنه. وقتی می‌نویسید greet("Sara")، "Sara" آرگومان است: مقدار واقعی که برای این صدا آن جا را پر می‌کند. یک دستورپخت، مواد متفاوت.

هرکدام کجا نوشته می‌شود

📊 پارامتر در برابر آرگومان

مفهوم کجا می‌نویسید جور روزمره
پارامتر داخل () موقع اعلان کاسهٔ خالی با برچسب name
آرگومان داخل () موقع صدا غذایی که می‌ریزید — "Sara"
ترتیب چپ به راست آرگومان اول → پارامتر اول
پیش‌فرض name = "friend" در اعلان اگر چیزی نیاوردید، کاسه از قبل ذخیره دارد
جای خالی صدا با تعداد کمتر آن پارامتر undefined می‌شود مگر پیش‌فرض داشته باشد

پارامتر روی اعلان می‌نشیند؛ آرگومان با هر صدا می‌آید. قاطی کردن این دو کلمه اشتباه رایج مبتدی‌هاست — تا عادت جا بیفتد جدول را نزدیک نگه دارید.

یک پارامتر

javascript
function greet(name) {
console.log("Hello, " + name);
}
greet("Sara");

یک ورودی، یک جا

name داخل greet منتظر می‌ماند. صدا "Sara" را می‌دهد. بدنه Hello, Sara را می‌سازد و چاپ می‌کند. آرگومان را عوض کنید، بدنه را نگه دارید — فایدهٔ پارامتر همین است.

دو پارامتر

javascript
function add(a, b) {
console.log(a + b);
}
add(3, 4);

دو جا، دو مقدار

پارامترها را با ویرگول بنویسید: a, b. آرگومان‌ها را همان ترتیب بدهید: 3 به a می‌رسد، 4 به b. کنسول 7 را نشان می‌دهد. بدنه آن عددها را سخت‌کد نکرده — صدا تأمینشان می‌کند.

ترتیب مهم است

javascript
function label(color, surface) {
console.log(color + " on " + surface);
}
label("red", "wall");
label("wall", "red");

قرارداد همان ترتیب است

صدای اول red on wall چاپ می‌کند. دومی wall on red — همان تابع، آرگومان جابه‌جا. JavaScript حدس نمی‌زند کدام «شبیه رنگ» است. موقعیت تصمیم می‌گیرد.

پارامتر با پیش‌فرض

javascript
function greetFriend(name = "friend") {
console.log("Hi, " + name);
}
greetFriend("Ali");
greetFriend();

وقتی چیزی نیاید، ذخیره دارید

name = "friend" یک پیش‌فرض می‌گذارد. greetFriend("Ali") همان "Ali" را می‌گیرد. greetFriend() با پرانتز خالی سراغ "friend" می‌رود. پیش‌فرض بدنه را وقتی صدا‌زننده یک جا را رد می‌کند امن نگه می‌دارد.

آرگومان جاافتاده می‌شود undefined

javascript
function showId(id) {
console.log(id);
}
showId();

نه مقدار، نه پیش‌فرض

showId() چیزی به id نمی‌دهد. بدون پیش‌فرض، id برابر undefined است و همان چاپ می‌شود. کرش نیست — علامت این است که آرگومان فراموش شده یا باید پیش‌فرض بگذارید.

رشته را به صفحه بدهید

همان الگوی DOM قبل، ولی پیام از آرگومان ساخته می‌شود. یک تابع می‌تواند مهمان‌های مختلف را خوش‌آمد بگوید — فقط صدا عوض می‌شود. دموی HTML پایین دقیقاً همین کار را می‌کند.

پارامتر را روی صفحه نشان دهید

تابعی بنویسید که اسم مهمان بگیرد، خوش‌آمد کوتاه داخل پاراگراف بنویسد، بعد با یک رشتهٔ واقعی صدا بزند.

صدا با آرگومان در صفحه

html
<!DOCTYPE html>
<html>
<head>
<title>parameters — page</title>
</head>
<body>
<p id="msg">…</p>
<script>
function welcome(guest) {
let box = document.getElementById("msg");
box.textContent = "Hello, " + guest;
}
welcome("Omar");
</script>
</body>
</html>

صفحه Hello, Omar را نشان می‌دهد. guest پارامتر بود؛ "Omar" آرگومان. فقط رشتهٔ صدا را عوض کنید، رفرش کنید، خط تازه را بخوانید. درس بعد return است — فرستادن مقدار از داخل تابع به بیرون.

خودتان تمرین کنید

  1. function hello(name) بنویسید که "hi " به‌اضافهٔ name را چاپ کند؛ بعد با اسم خودتان صدا بزنید.
  2. function sum(x, y) بنویسید که x + y را چاپ کند؛ با دو عدد صدا بزنید.
  3. یک تابع دوپارامتری را دو بار با آرگومان جابه‌جا صدا بزنید و لاگ‌ها را مقایسه کنید.
  4. پیش‌فرضی مثل title = "guest" بگذارید؛ یک‌بار با مقدار، یک‌بار با () خالی صدا بزنید.
  5. تابع یک‌پارامتری را بدون آرگومان و بدون پیش‌فرض صدا بزنید؛ در کنسول undefined را ببینید.
  6. در دموی HTML فقط رشتهٔ آرگومان را عوض کنید، رفرش کنید، پاراگراف را بخوانید.

اشتباه‌های رایج

  • صدا با () خالی وقتی بدنه مقدار می‌خواهد — بدون پیش‌فرض به undefined می‌رسید
  • جابه‌جا کردن ترتیب آرگومان و انتظار اینکه JavaScript «بفهمد» کدام کدام است
  • قاطی کردن پارامتر (اعلان) با آرگومان (صدا)
  • فراموش کردن ویرگول بین دو پارامتر یا دو آرگومان
  • دنبال مقدار برگشتی گشتن اینجا — آن درس بعد است؛ این صفحه فقط ورودی است

خلاصه

  • پارامتر اسم‌هایی است داخل () اعلان
  • آرگومان مقداری است که موقع صدا می‌دهید
  • ترتیب چپ به راست است — اول با اول، دوم با دوم
  • پیش‌فرض وقتی صدا‌زننده جا را رد کند پر می‌کند
  • جای خالی بدون پیش‌فرض می‌شود undefined
  • به‌روزرسانی صفحه می‌تواند از مقدار پاس‌داده‌شده در پیام استفاده کند
  • بعدی: return — نتیجه را از تابع بیرون بفرستید

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

❓
8
سوالات
🎯
70%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود