درود دوستان! یکی از ویژگی‌های پرکاربرد جاوااسکریپت که خیلی زیاد اون رو می‌بینیم و با اونها سر و کار داریم، توابعی هستن که با Function Expression ساخته شدن. الان می‌خوایم ببینیم که:

 

Function Expression چیه؟ 🤔

Function Expression یک روش دیگه برای داشتن توابع توی جاوااسکریپت هست:

// Function Expression
const welcome = function () {
  // ...
};

همونطور که می‌بینیم، تابعی ساختیم که بدون اسم هست و اون رو به یک متغیر نسبت دادیم. به توابعی که بدون اسم ساخته میشن به طوری که بتونیم اونها رو به یک متغیر نسبت بدیم و یا به عنوان ورودی یا خروجی یک تابع دیگه در نظر بگیریم می‌گیم Function Expression.

توابعی که به این روش ساخته میشن، با چند تفاوت جزئی، درست مثل توابعی که قبلاً اونها رو بررسی کردیم می‌تونن تعریف و استفاده بشن. مهمترین تفاوت اونها اینه که می‌تونیم این توابع رو بدون نام بسازیم. بیشتر مواقع ما این توابع رو در حالی می‌بینیم که به یک متغیر نسبت داده شدن، اما به روش‌های دیگه‌ای هم مورد استفاده قرار می‌گیرن که بعداً با اونها آشنا می‌شیم.

برگردیم به کدی که نوشتیم. توی کد بالا مقدار متغیر welcome یک تابع هست. پس می‌تونه مثل یک تابع استفاده بشه:

welcome();

این توابع، مثل توابع عادی می‌تونن به همون صورت ورودی و خروجی داشته باشن:

const welcome = function (name) {
  return `Welcome to our app, ` + name;
};

alert(welcome("Emily"));

نکته‌ای که باید در نظر داشته باشیم اینه که welcome یک تابع نیست، بلکه متغیری هست که مقدار اون یک تابع هست.

توابعی که توی قسمت‌های قبل با اونها آشنا شدیم، با روش Function Declaration ساخته می‌شدن:

// Function Declaration
function welcome() {
  // ...
}

پس دو روش ساختن تابع توی جاوااسکریپت داریم: Function Declaration و Function Expression

 

نکته: خوندن ادامه مطلب اختیاری هست و اگه هنوز اطلاعاتی از مفاهیمی مثل Hoisting و Scope جاوااسکریپت ندارین، می‌تونین بعد از آشنایی با این مفاهیم (که توی قسمت‌های بعد مفصل با اونها آشنا می‌شیم) برگردین و ادامه رو بخونین 😉