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

پارامترها، داده‌های خامی هستند که تابع آنها را پردازش می‌کند و سپس اطلاعاتی را که به دنبال آن هستید در اختیار شما قرار می‌دهد. فرض کنید پارامترها مانند اطلاعاتی هستند که شما به یک کارمند می‌دهید که بر طبق آنها کارش را به پایان برساند. یک تابع می‌تواند هر تعداد پارامتر داشته باشد. هر پارامتر می‌تواند از انواع مختلف داده باشد. در زیر یک تابع با N پارامتر نشان داده شده است :

function FunctionName(param1,param2, ...paramN)
{
  code to execute;
}

پارامترها بعد از نام تابع و بین پرانتزها قرار می‌گیرند. بر اساس کاری که تابع انجام می‌دهد می‌توان تعداد پارامترهای زیادی به تابع اضافه کرد. بعد از فراخوانی یک تابع باید آرگومانهای آن را نیز تأمین کنید. آرگومان‌ها مقادیری هستند که به پارامترها اختصاص داده می‌شوند. اجازه بدهید که یک مثال بزنیم :

 1: function CalculateSum(number1, number2)
 2: {
 3:     return number1 + number2;
 4: }
 5: 
 6: var result = CalculateSum(10,5);
 7: console.log(result);
15

در برنامه بالا یک تابع به نام CalculateSum() (خطوط 4-1) تعریف شده است که وظیفه آن جمع مقدار دو عدد است. تابع دارای دو پارامتر است که اعداد را به آنها ارسال می‌کنیم. در بدنه تابع دستور return نتیجه جمع دو عدد را بر می‌گرداند. در خط 6 دو عدد 5 و 10 را به عنوان آرگومان به تابع ارسال می‌کنیم. بعد از ارسال مقادیر 5 و 10 به پارامترها، پارامترها آنها را دریافت می‌کنند. به این نکته نیز توجه کنید که نام پارامترها طبق قرارداد به شیوه کوهان شتری یا camelCasing (حرف اول دومین کلمه بزرگ نوشته می‌شود) نوشته می‌شود. در داخل بدنه تابع (خط 3) دو مقدار با هم جمع می‌شوند و در خط 7 نتیجه چاپ می‌شود. دانستن مبانی مقادیر برگشتی و ارسال آرگومانها باعث می‌شود که شما توابع کارآمدتری تعریف کنید. تکه کد زیر نشان می‌دهد که شما حتی می‌توانید مقدار برگشتی از یک تابع را به عنوان آرگومان به تابع دیگر ارسال کنید:

 1: function MyFunction()
 2: {
 3:     return 5;
 4: }
 5: 
 6: function AnotherFunction(number)
 7: {
 8:     console.log(number);
 9: }
10: 
11: AnotherFunction(MyFunction());
5

چون مقدار برگشتی تابع MyFunction() عدد 5 است و به عنوان آرگومان به تابع AnotherFunction() ارسال می‌شود خروجی کد بالا هم عدد 5 است. نکته پایانی اینکه مقدار پیشفرض همه پارامترها، اگر مقداری به آنها ارسال نشود، undefined می باشد:

function MyFunction(param)
{
    console.log(param);
}

MyFunction();
undefined