JavaScript Function Expressions
۱. عبارت تابعی ساده (Basic Function Expression)
const greet = function() {
console.log(“Hello!”);
};
greet(); // Hello!
-
تابع داخل یک متغیر ذخیره میشود
-
قبل از فراخوانی، باید تعریف شده باشد
۲. تفاوت عبارت تابعی و اعلان تابع (Function Declaration)
اعلان تابع (Hoisted میشود)
sayHi();
function sayHi() {
console.log(“Hi!”);
}
عبارت تابعی (Hoisted نمیشود)
sayHello(); // ❌ خطا
const sayHello = function() {
console.log(“Hello!”);
};
۳. عبارت تابعی ناشناس (Anonymous Function Expression)
اکثر عبارات تابعی بدون نام هستند:
const sum = function(a, b) {
return a + b;
};
۴. عبارت تابعی نامدار (Named Function Expression)
برای دیباگ و بازگشت (recursion) مفید است:
const factorial = function fact(n) {
if (n === 1) return 1;
return n * fact(n – 1);
};
-
نام
factفقط داخل تابع قابل دسترسی است
۵. استفاده از عبارات تابعی بهعنوان Callback
بسیار رایج در رویدادها و کدهای ناهمگام:
setTimeout(function() {
console.log(“بعد از ۱ ثانیه اجرا شد”);
}, 1000);
۶. توابع Arrow (جایگزین مدرن)
توابع Arrow شکل کوتاهتری از عبارات تابعی هستند:
تفاوتهای مهم:
-
thisمخصوص خودشان را ندارند -
نمیتوان از آنها بهعنوان constructor استفاده کرد
-
کد خواناتر و کوتاهتر
۷. چه زمانی از عبارت تابعی استفاده کنیم؟
✅ وقتی که:
-
ترتیب اجرای قابل پیشبینی میخواهیم
-
تابع بهعنوان مقدار استفاده میشود (callback، closure)
-
میخواهیم از مشکلات hoisting جلوگیری کنیم
خلاصه
| ویژگی | عبارت تابعی |
|---|---|
| Hoisting | ❌ ندارد |
| میتواند ناشناس باشد | ✅ |
| در متغیر ذخیره میشود | ✅ |
| استفاده بهعنوان callback | ✅ بسیار رایج |
دیدگاهتان را بنویسید