فصل ۹: توابع (Functions) در جاوااسکریپت

اموزش رایگان جاوا اسکریپت از مقدماتی تا متوسط

توابع یعنی چی؟

تابع یه تیکه کد هست که یه کار مشخص رو انجام می‌ده و بعداً هر جا که بخوای می‌تونی اون رو صدا بزنی. این کار باعث می‌شه کدت منظم‌تر و قابل استفاده مجدد باشه.

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


تعریف تابع (Function Declaration)

ساده‌ترین روش ساخت تابع مثل زیر هست:

function sayHello() {
  console.log("سلام دوست من!");
}

برای اجرای این تابع:

sayHello(); // خروجی: سلام دوست من!

تابع با پارامتر (Parameters) و مقدار بازگشتی (return)

توابع می‌تونن ورودی بگیرن و مقدار هم برگردونن. مثلا:

function sum(a, b) {
  return a + b;
}

حالا می‌تونیم این تابع رو با دو عدد مختلف صدا بزنیم:

console.log(sum(4, 5)); // خروجی: 9
console.log(sum(10, 80)); // خروجی: 90

Function Expression (تعبیر تابع)

می‌تونی یه تابع رو توی یه متغیر هم ذخیره کنی:

const greet = function(name) {
  console.log("سلام " + name + "!");
}

greet("نیما"); // خروجی: سلام نیما!

Arrow Function (تابع پیکانی)

یه روش جمع و جورتر و مدرن‌تر برای ساخت تابع:

const multiply = (x, y) => {
  return x * y;
}
console.log(multiply(2, 3)); // خروجی: 6

اگر فقط یه خط کد داری و مقدار رو return می‌کنی:

const double = num => num * 2;
console.log(double(7)); // خروجی: 14

اسکوپ (Scope) و هوایستینگ (Hoisting)

اسکوپ:

محدوده‌ای که یه متغیر یا تابع می‌تونه داخلش دیده بشه.

  • متغیر let و const فقط توی بلوک خودشون قابل دسترسی هستن
  • تابع‌هایی که با function تعریف شدن، تقریباً همه جا معتبرن (هوایستینگ)

Hoisting (هوایستینگ):

تابع‌هایی که با function declaration ساخته شدن، قبل از تعریف هم قابل فراخوانی هستن:

show(); // خروجی: من قبل از تعریف هم اجرا می‌شوم!
function show() {
  console.log("من قبل از تعریف هم اجرا می‌شوم!");
}

فانکشن بازگشتی (Recursion)

تابعی که خودش رو دوباره صدا بزنه!
مثال با محاسبه فاکتوریل:

function factorial(n) {
  if(n === 1) return 1;
  return n * factorial(n - 1);
}
console.log(factorial(5)); // خروجی: 120

تمرین‌های ساده

۱. تابعی بنویس که عددی رو به عنوان ورودی بگیره و مربع اون رو برگردونه.
۲. تابعی بنویس که دو رشته بگیره و به هم بچسبونه و چاپ کنه.


جمع‌بندی

  • تابع یه تکه کد تکرارپذیر و سازمان‌یافته است.
  • ورودی، خروجی، return و تعریف‌های مختلفش رو دیدی.
  • اسکوپ و هوایستینگ، و حتی فانکشن بازگشتی رو یاد گرفتی.
محمد وب‌سایت

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *