توابع یکی از ابزارهای اساسی در جاوا اسکریپت هستند که به برنامهنویسان این امکان را میدهند تا یک بلاک کد را نامگذاری کرده و در هر زمان که نیاز باشد، آن را اجرا کنند. توابع به برنامهنویسان این امکان را میدهند که کد را به بخشهای کوچکتر تقسیم کرده و بخشهای مختلف کد را به صورت ماژولار و قابل استفاده مجدد طراحی کنند. در این مقاله، به ساختار و کاربردهای توابع در جاوا اسکریپت خواهیم پرداخت و مثالهای کاربردی از آن را پیاده سازی میکنیم. همچنین پیشنهاد میکنیم آموزش حلقه do while در جاوا اسکریپت را نیز مطالعه نمایید.
ساختار توابع در جاوا اسکریپت
ساختار ابتدایی یک تابع در جاوا اسکریپت به شکل زیر است:
function نام_تابع(پارامتر1, پارامتر2, ...) {
// بلاک کد تابع
// ...
return نتیجه;
}
- نام تابع: نامی که برنامهنویس به تابع اختصاص میدهد.
- پارامترها: متغیرهایی که تابع به عنوان ورودی میپذیرد. تعداد و نوع پارامترها میتواند متغیر باشد.
- بلاک کد تابع: قسمتی از کد که دستورات اجرایی تابع در آن قرار دارد.
- return: دستوری که نتیجه تابع را به خارج از تابع باز میگرداند.
تعریف تابع
برای تعریف یک تابع، از کلیدواژه function
استفاده میشود. به عنوان مثال:
function add(num1, num2) {
let sum = num1 + num2;
return sum;
}
در این مثال، تابع add دو عدد را به عنوان ورودی گرفته، آنها را جمع میکند و نتیجه را با دستور return
باز میگرداند.
استفاده از توابع در جاوا اسکریپت
بعد از تعریف تابع، میتوان آن را برای انجام محاسبات مورد نیاز فراخوانی کرد. به عنوان مثال:
let result = add(5, 3);
console.log(result);
در اینجا، تابع add با ورودیهای 5 و 3 فراخوانی و نتیجه آن در متغیر result ذخیره و سپس در کنسول چاپ شده است.
پارامترهای تابع
توابع میتوانند شامل یک یا چند پارامتر باشند که مقادیر هنگام فراخوانی تابع به آنها منتقل میشوند. برای مثال:
function say_hi(name) {
console.log("سلام " + name + "!");
}
say_hi("آرمان"); // خروجی: سلام آرمان!
در این مثال، تابع say_hi یک پارامتر به نام name دارد و هنگام استفاده با مقدار “آرمان” فراخوانی گردیده است.
تابع بدون بازگشت (return)
توابع ممکن است دارای دستور return
نباشند، به این ترتیب که نتیجه محاسبات درون تابع به صورت ضروری بازگشت داده نشود. مثال:
function say_hi(name) {
console.log("سلام " + name + "!");
}
say_hi("محمد"); // خروجی: سلام محمد!
در اینجا تابع say_hi دارای دستور return
نیست و به جای بازگشت مقدار، مستقیماً یک پیام را چاپ میکند (مشابه مثال قسمت قبل).
تعریف تابع به صورت عبارتی (Function Expression)
توابع در جاوا اسکریپت میتوانند به صورت عبارتی نیز تعریف شوند. در این حالت، تابع به عنوان یک متغیر اعلان میشود. مثال:
let mul = function(num1, num2) {
return num1 * num2;
};
let result = mul(4, 6);
console.log(result);
در اینجا تابع mul به عنوان یک متغیر تعریف شده و مقدار آن با دستور return
برگشت داده شده است.
توابع همگن (Arrow Functions)
از جاوا اسکریپت ES6 به بعد، توابع همگن یا Arrow Functions نیز وارد شدهاند که نحوه تعریف آنها کمی متفاوت است. مثال:
let divide = (num1, num2) => {
return num1 / num2;
};
let result = divide(8, 2);
console.log(result); // خروجی: 4
توابع همگن به صورت خلاصهتر از توابع عبارتی نوشته میشوند و در بسیاری از موارد کاربردیتر هستند.
استفاده از توابع به عنوان مقدار (First-Class Citizens)
یکی از ویژگیهای جالب جاوا اسکریپت این است که توابع به عنوان مقدار (First-Class Citizens) قابل استفاده هستند. این بدان معناست که میتوانیم یک تابع را به عنوان ورودی به یک تابع دیگر ارسال کنیم یا تابع را به عنوان خروجی یک تابع دیگر بازگردانیم. مثال:
function run_func(func, input) {
return func(input);
}
let result = run_func(function(x) {
return x * x;
}, 5);
console.log(result); // خروجی: 25
در اینجا تابع run_func یک تابع و ورودی میپذیرد و آن تابع را با ورودی اجرا میکند.
نتیجهگیری
توابع یکی از اجزای اساسی و قدرتمند در جاوا اسکریپت هستند که به برنامهنویسان این امکان را میدهند تا کد را به بخشهای کوچکتر تقسیم کنند، قابلیت استفاده مجدد داشته باشند و کد خود را سازماندهی کنند. از ساختار First-Class Citizens نیز میتوان به عنوان یکی از ویژگیهای قدرتمند جاوا اسکریپت نام برد که امکان انتقال توابع به عنوان ورودی یا خروجی را فراهم میکند.