توابع JavaScript

توابع JavaScript به عنوان بلوک‌های کدی طراحی شده‌اند که وظایف خاصی را انجام می‌دهند.

توابع JavaScript در زمانی که توسط کد دیگر فراخوانی می‌شوند، اجرا می‌شوند.

مثال

function myFunction(p1, p2) {
    return p1 * p2;              // این تابع محصول p1 و p2 را برمی‌گرداند
}

به طور مستقیم امتحان کنید

نحوه نوشتن توابع JavaScript

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

نام تابع می‌تواند شامل حروف، اعداد، خط تیره و علامت دلار باشد (قوانین مشابه نام متغیرها).

دو علامت گوشه‌ای می‌توانند شامل پارامترهایی باشند که با کاما جدا شده‌اند:

(پارامتر 1, پارامتر 2, ...)

کدی که توسط تابع اجرا می‌شود در میان دو علامت براق قرار می‌گیرد:{}

function name(پارامتر 1, پارامتر 2, پارامتر 3) {
    کدی است که باید اجرا شود
}

پارامترهای تابع (Function parameters)نام‌هایی هستند که در تعریف تابع ذکر شده‌اند.

پارامترهای تابع (Function arguments)مقدار واقعی است که در زمان فراخوانی تابع توسط تابع دریافت می‌شودمقدار

در توابع، پارامترها متغیرهای محلی هستند.

در زبان‌های برنامه‌نویسی دیگر، تابع تقریباً مشابه برنامه (Procedure) یا زیر برنامه (Subroutine) است.

فراخوانی تابع

کد درون تابع در زمانی که تابع توسط کد دیگر فراخوانی می‌شود، اجرا می‌شود:

  • وقتی رویداد رخ می‌دهد (وقتی کاربر دکمه را کلیک می‌کند)
  • وقتی کد JavaScript فراخوانی شود
  • 자동적인 (자동 호출)

شما در این آموزش بیشتر درباره فراخوانی توابع یاد خواهید گرفت.

بازگشت توابع

وقتی JavaScript به بازگشت دستور، توابع متوقف می‌شوند.

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

توابع معمولاً محاسباتی را انجام می‌دهندبازگشت‌دهندهاین بازگشت به فراخواننده بازمی‌گردد:

مثال

محاسبه جمع دو عدد و بازگشت نتیجه:

var x = myFunction(7, 8);        // فراخوانی توابع، مقدار بازگشتی به x تخصیص داده می‌شود
function myFunction(a, b) {
    return a * b;                // توابع بازمی‌گردد به جمع a و b
}

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

56

به طور مستقیم امتحان کنید

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

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

شما می‌توانید چندین بار پارامترهای مختلف به یک توابع واحد ارسال کنید تا نتایج مختلفی تولید شود.

مثال

تبدیل درجه حرارت فهرنای به سانتیگراد:

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

به طور مستقیم امتحان کنید

استفاده از عملگر () برای فراخوانی توابع

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

مثال

دسترسی به توابع بدون () به تعریف توابع بازمی‌گردد:

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

به طور مستقیم امتحان کنید

توابع به عنوان مقدار متغیر

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

مثال

از متغیر برای ذخیره مقدار توابع استفاده کنید:

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

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

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

به طور مستقیم امتحان کنید

شما در این آموزش بیشتر درباره توابع یاد خواهید گرفت.

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

متغیرهایی که در تابع JavaScript تعریف می‌شوند، به عنوانمتغیرهای محلی

متغیرهای محلی فقط در داخل تابع قابل دسترسی هستند.

مثال

// کد در اینجا نمی‌تواند از carName استفاده کند
function myFunction() {
    var carName = "Volvo";
    // کد در اینجا می‌تواند از carName استفاده کند
}
// کد در اینجا نمی‌تواند از carName استفاده کند

به طور مستقیم امتحان کنید

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

متغیرهای محلی در شروع تابع ایجاد می‌شوند و در پایان تابع حذف می‌شوند.

کتابهای درسی

برای اطلاعات بیشتر در مورد توابع JavaScriptبرای اطلاعات بیشتر، مطالب مرتبط در آموزشهای پیشرفته JavaScript را بخوانید:

مبانی توابع ECMAScript
این بخش مفهوم توابع را توضیح می‌دهد، نحوه تعریف و فراخوانی توابع ECMAScript و نحوه بازگشت ارزش توسط توابع را معرفی می‌کند.
شی arguments ECMAScript
این بخش از کاربرد پایه این شیء صحبت می‌کند و سپس نحوه استفاده از ویژگی length برای تعیین تعداد پارامترهای تابع و شبیه‌سازی بارگذاری مجدد توابع را توضیح می‌دهد.
شی Function ECMAScript (کلاس)
این بخش توضیح می‌دهد که چگونه از کلاس Function برای ایجاد توابع استفاده می‌شود و سپس ویژگیها و روشهای شیء Function را معرفی می‌کند.
بستگی ECMAScript (closure)
این بخش مفهوم بستگی (closure) را توضیح می‌دهد و دو مثال ساده و پیچیده از بستگی را به شما نشان می‌دهد.