۱. تعریف تابع
۱.۱. مفهوم تابع
تابع یک بلوک کد است که میتواند به نام فراخوانی شود. توابع میتوانند ورودی (آرگومان) بپذیرند و خروجی (نتیجه) تولید کنند.
۱.۲. ساختار تابع
ساختار کلی یک تابع در جاوا اسکریپت به صورت زیر است:
function functionName(parameters) {
// کدهای تابع
}
۱.۳. مثال ساده
function sayHello() {
console.log("Hello, World!");
}
۲. نحوه فراخوانی تابع
برای اجرای یک تابع، تنها کافی است نام تابع را به همراه پرانتز صدا بزنید.
sayHello(); // خروجی: Hello, World!
۳. توابع با پارامتر
توابع میتوانند ورودیهایی به نام پارامتر بپذیرند. این پارامترها به تابع این امکان را میدهند که بر اساس دادههای ورودی، رفتار متفاوتی داشته باشد.
۳.۱. مثال از تابع با پارامتر
function greet(name) {
console.log("Hello, " + name + "!");
}
greet("Alice"); // خروجی: Hello, Alice!
۴. بازگشت مقدار از تابع
توابع میتوانند با استفاده از کلمه کلیدی return مقداری را به عنوان خروجی برگردانند.
۴.۱. مثال از تابع با خروجی
function add(a, b) {
return a + b;
}
let sum = add(5, 3);
console.log(sum); // خروجی: ۸
۵. توابع بازگشتی (Recursive Functions)
توابع بازگشتی توابعی هستند که خود را درون خود صدا میزنند. این نوع توابع معمولاً برای حل مسائل تکراری مانند محاسبه فاکتوریل یا دنباله فیبوناچی استفاده میشوند.
۵.۱. مثال از تابع بازگشتی
function factorial(n) {
if (n === 0) {
return 1;
}
return n * factorial(n - 1);
}
console.log(factorial(5)); // خروجی: ۱۲۰
۶. توابع بینام (Anonymous Functions)
توابع بینام، توابعی هستند که نام ندارند و معمولاً به عنوان مقادیر به متغیرها یا به توابع دیگر ارسال میشوند.
۶.۱. مثال از تابع بینام
const greet = function(name) {
console.log("Hello, " + name + "!");
};
greet("Bob"); // خروجی: Hello, Bob!
۷. توابع Arrow یا (Arrow Functions)
از ES6 به بعد، میتوانیم از توابع Arrow استفاده کنیم که نوشتن توابع را سادهتر میکند. توابع Arrow به خاطر نحوه پیادهسازی و قابلیتها بسیار محبوب شدهاند.
۷.۱. مثال از تابع Arrow
const greet = (name) => {
console.log("Hello, " + name + "!");
};
greet("Charlie"); // خروجی: Hello, Charlie!
۸. پارامترهای پیشفرض
جاوا اسکریپت این امکان را فراهم میکند که برای پارامترها مقادیر پیشفرض تعیین کنید. اگر پارامتری در هنگام فراخوانی تابع ارسال نشود، مقدار پیشفرض استفاده خواهد شد.
۸.۱. مثال از پارامتر پیشفرض
function greet(name = "Guest") {
console.log("Hello, " + name + "!");
}
greet(); // خروجی: Hello, Guest!