توابع

از ویکی‌کد
پرش به ناوبری پرش به جستجو
Main Page Tutorial
JavaScript-menu.png
موارد آموزشی
فرم‌ها در جاوا اسکریپت
اشیاء در جاوا اسکریپت
تابع در جاوا اسکریپت
HTML DOM در جاوا اسکریپت
Browser BOM در جاوا اسکریپت
AJAX در جاوا اسکریپت
JSON در جاوا اسکریپت
جی‌کوئری در برابر جاوا اسکریپت
مرجع جاوا اسکریپت

یک تابع جاوا اسکریپت بلاکی از کدهاست که برای انجام یک کار به خصوص، طراحی شده‌اند. [۱]
یک تابع جاوا اسکریپت زمانی اجرا می‌شود که «چیزی» آن را اجرا کند (فراخوانی کند).

مثال

1 function myFunction(p1, p2) {
2   return p1 * p2;   // The function returns the product of p1 and p2
3 }


مشاهدهٔ نتیجه


شیوهٔ تعریف (به انگلیسی: Syntax) توابع در جاوا اسکریپت

یک تابع جاوا اسکریپت با کلمه کلیدی function شروع می شود.

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

نام توابع می‌تواند شامل:

(همانند قوانینی که برای نام متغیرها وجود دارد).

پرانتزها می‌توانند شامل نام پارامترهای تابع باشند که به وسیلهٔ علامت ویرگول , از یک دیگر جدا شده‌اند.

(پارامتر ۱، پارامتر دو، ...)

کدی که می‌بایست هنگام فراخوانی تابع اجرا شود، درون آکولادها { } قرار می‌گیرد.

1 function name(parameter1, parameter2, parameter3) {
2   // code to be executed
3 }

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

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

درون یک تابع، آرگومان‌ها (پارامترهای تابع) همانند متغیرهای محلی (به انگلیسی: local) رفتار می‌کنند.

تابع‌ها در جاوا اسکریپت بسیار شبیه Procedureها یا Subroutineها در سایر زبان‌های برنامه‌نویسی هستند.

اجرای تابع

کدی که درون یک تابع قرار دارد زمانی اجرا می‌شود که «چیزی» تابع را اجرا (فراخوانی) کند:

  • زمانی که یک رویداد رخ می‌دهد (همانند زمانی که کاربر بر روی یک دکمه کلیک می‌کند)
  • زمانی که تابع توسط کد جاوا اسکریپت اجرا (فراخوانی) شود
  • به صورت خودکار (خوداجرا)

<translate> نکته</translate>  نکته: شما در مورد اجرای توابع در فصول آینده این آموزش، مطالب بیشتری را خواهید آموخت.

بازگشت تابع

زمانی تابع به تکه کد return می‌رسد، اجرای تابع متوقف می‌شود.

اگر تابع از یک عبارت فراخوانی شود، جاوا اسکریپت پس از اجرای کامل عبارت، “بازمی‌گردد” تا تابع را اجرا کند.

توابع اغلب یک مقدار بازگشتی را محاسبه می‌کنند. مقدار بازگشتی به "فراخوانی کننده"  "بازمی‌گردد".

مثال

حاصل ضرب دو عدد را محاسبه کرده و نتیجه را برمی‌گرداند:

1 var x = myFunction(4, 3);   // Function is called, return value will end up in x
2 
3 function myFunction(a, b) {
4   return a * b;             // Function returns the product of a and b
5 }


مشاهدهٔ نتیجه


نتیجه یا همان مقدار x برابر خواهد بود با:

12

چرا باید از توابع استفاده کنیم؟

شما می‌توانید از کد خود چندین بار استفاده کنید: یک بار کد خود را تعریف می‌کنید و چندین بار از آن استفاده می‌کنید.

شما می‌توانید از یک تکه کد چندین بار با آرگومان‌های متفاوتی استفاده کنید تا نتایج متفاوتی را به دست آورید.

مثال

تبدیل فارنهایت به سلسیوس:

1 function toCelsius(fahrenheit) {
2   return (5/9) * (fahrenheit-32);
3 }
4 document.getElementById("demo").innerHTML = toCelsius(77);


مشاهدهٔ نتیجه


عملگر () موجب اجرای تابع می‌شود

درمثال بالا، toCelsius به شیء تابع اشاره می‌کند و toCelsius() به نتیجه تابع اشاره می‌کند.

فراخوانی یک تابع بدون () موجب می‌شود که کدهای درون تابع به جای نتیجهٔ تابع به عنوان خروجی بازگردانده شود.

مثال

1 function toCelsius(fahrenheit) {
2   return (5/9) * (fahrenheit-32);
3 }
4 document.getElementById("demo").innerHTML = toCelsius;


مشاهدهٔ نتیجه


استفاده از توابع، همانند استفاده از مقادیر متغیرها است

توابع می‌توانند به همان روشی که شما از مقادیر متغیرها استفاده می‌کنید در هر نوع از فرمولها، مقداردهی‌ها و محاسبات استفاده شوند.

مثال

به جای استفاده از یک متغیر برای ذخیرهٔ مقدار بازگشتی تابع همانند مثال زیر:

1 var x = toCelsius(77);
2 var text = "The temperature is " + x + " Celsius";

شما می‌توانید فراخوانی تابع را به صورت مستقیم و همانند مقدار یک متغیر استفاده کنید:

var text = "The temperature is " + toCelsius(77) + " Celsius";


مشاهدهٔ نتیجه

شما مطالب بیشتری را در مورد توابع بعداً در این آموزش خواهید آموخت.

متغیرهای محلی

متغیرهایی که درون یک تابع در جاوا اسکریپت تعریف می‌شود، به عنوان متغیر محلی (LOCAL) آن تابع شناخته می‌شوند.

از متغیرهای محلی، تنها می‌توان در توابع مربوط به خودشان استفاده کرد.

مثال

1 // code here can NOT use carName
2 
3 function myFunction() {
4   var carName = "Volvo";
5   // code here CAN use carName
6 }
7 
8 // code here can NOT use carName


مشاهدهٔ نتیجه


از آن‌جایی که متغیرهای محلی تنها در توابع مربوط به خودشان قابل استفاده هستند، شما می‌توانید از متغیرهای هم‌نام در توابع متفاوت استفاده کنید.

متغیرهای محلی زمانی ساخته می‌شوند که اجرای تابع شروع می‌شود و زمانی حذف می‌شوند که اجرای تابع به صورت کامل به اتمام رسیده باشد.

تمرینات جاوا اسکریپت

Time2wait.svg ساخت نمونه مثال این بخش در دست اقدام است.



منابع آموزشی