جاوا اسکریپت کا فنکشن

فانکشن‌های 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

آزمایش کنید

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

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

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

مثال

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

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 استفاده کند

آزمایش کنید

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

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

کتاب‌های درسی

برای اطلاعات بیشتر در مورد جاوا اسکریپت کا فنکشنبرای اطلاعات بیشتر در مورد

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