مقدار برگشتی از یک تابع

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

function MethodName()
{
    return value;
}

همانطور که مشاهده می کنید مقدار بازگشتی از تابع یعنی value را جلوی دستور return می نویسیم. مثال زیر یک تابع که دارای مقدار برگشتی است را نشان می دهد :

 1: function CalculateSum()
 2: {
 3:     var firstNumber = 10;
 4:     var secondNumber = 5 ;
 5:     var sum = firstNumber + secondNumber ;
 6: 
 7:     return sum;
 8: }
 9: 
10: var result = CalculateSum();
11: console.log(result); 
15

در خطوط 3 و 4 مثال فوق، دو متغیر تعریف و مقدار دهی شده اند. توجه کنید که این متغیرها، متغیرهای محلی هستند. و این بدان معنی است که این متغیرها در سایر توابع قابل دسترسی نیستند و فقط در تابعی که در آن تعریف شده اند قابل استفاده هستند. در خط 5 جمع دو متغیر در متغیر sum قرار می گیرد. در خط 7 مقدار برگشتی sum توسط دستور return فراخوانی می شود. در خط 10 یک متغیر به نام result تعریف می کنیم و تابع ()CalculateSum را فراخوانی می کنیم.

تابع ()CalculateSum مقدار 15 را بر می گرداند که در داخل متغیر result ذخیره می شود. در خط 11 مقدار ذخیره شده در متغیر result چاپ می شود. تابعی که در این مثال ذکر شد تابع کاربردی و مفیدی نیست. با وجودیکه کدهای زیادی در تابع بالا نوشته شده ولی همیشه مقدار برگشتی 15 است، در حالیکه می توانستیم به راحتی یک متغیر تعریف کرده و مقدار 15 را به آن اختصاص دهیم. این تابع در صورتی کارامد است که پارامترهایی به آن اضافه شود که در درسهای آینده توضیح خواهیم داد. هنگامی که می خواهیم در داخل یک تابع از دستور if یا switch استفاده کنیم باید تمام کدها دارای مقدار برگشتی باشند. برای درک بهتر این مطلب به مثال زیر توجه کنید :

 1: function GetNumber()
 2: {
 3:     var number = 11 ;
 4: 
 5:     if (number > 10)   
 6:     {                  
 7:         return number; 
 8:     }                  
 9:     else               
10:     {                  
11:         return 0;      
12:     }                  
13: }
14: 
15: var result = GetNumber();
16: console.log(result);
11

در خطوط 13-1 یک تابع با نام ()GetNumber تعریف شده است. در خط 3 متغیری با مقدار 11 مقداردهی شده است که در خط 5 با مقدار 10 مقایسه می شود و چون مقدار این متغیر از 10 بیشتر است پس دستور return اول مقدار 11 را برمی گرداند. حال اگر مقدار این متغیر از 10 کمتر باشد دستور return مربوط به قسمت else اجرا و مقدار صفر چاپ می شود. که از کاربر یک عدد بزرگتر از 10 را می خواهد. اگر قسمت else دستور if و یا دستور return را از آن حذف کنیم در هنگام اجرای برنامه نتیجه چاپ نمی شود. چون اگر شرط دستور if نادرست باشد برنامه به قسمت else می رود تا مقدار صفر را بر گرداند و چون قسمت else حذف شده است برنامه هیچ مقداری را چاپ نمی کند و همچنین اگر دستور return حذف شود چون برنامه نیاز به مقدار برگشتی دارد برنامه هیچ مقداری را چاپ نمی کند. و آخرین مطلبی که در این درس می خواهیم به شما آموزش دهیم این است که شما می توانید از یک تابع که مقدار برگشتی ندارد خارج شوید. استفاده از return باعث خروج از بدنه تابع و اجرای کدهای بعد از آن می شود.

function TestReturnExit()
{
    console.log("Line 1 inside the method TestReturnExit()");

    return;

    console.log("Line 2 inside the method TestReturnExit()");
}

TestReturnExit();
Line 1 inside the method TestReturnExit()

در برنامه بالا نحوه خروج از تابع با استفاده از کلمه کلیدی return و نادیده گرفتن همه کدهای بعد از این کلمه کلیدی نشان داده شده است. در پایان برنامه تابع تعریف شده (()TestReturnExit) فراخوانی و اجرا می شود.