توابع در جاوااسکریپت

از ویکی کد
پرش به ناوبری پرش به جستجو
دورهٔ آموزشی جاوااسکریپت
Javascript.jpg
جاوااسکریپت
موارد آموزشی
۱آموزش جاوااسکریپت
۲مقدمه‌ای بر جاوااسکریپت
۳قوانین و اصول اولیه زبان جاوااسکریپت
۴خروجی جاوااسکریپت
۵عبارت‌ها در جاوااسکریپت
۶شیوهٔ نوشتن دستورات در جاوااسکریپت
۷نظرات یا کامنت‌ها (Comments) در جاوااسکریپت
۸متغیرها در جاوااسکریپت
۹عملگرهای جاوااسکریپت
۱۰عملگرهای ریاضی در جاوااسکریپت
۱۱عملگرهای مقداردهی در جاوااسکریپت
۱۲انواع داده‌ها در جاوااسکریپت
۱۳توابع در جاوااسکریپت
۱۴اشیاء (object) در جاوااسکریپت
۱۵رویدادها در جاوااسکریپت
۱۶رشته‌های متنی (string) در جاوااسکریپت
۱۷متدهای نوع داده متنی یا رشته‌ای در جاوااسکریپت
۱۸اعداد در جاوااسکریپت
۱۹متدهای داده‌های عددی در جاوااسکریپت
۲۰آرایه‌ها در جاوااسکریپت
۲۱متدهای آرایه در جاوااسکریپت
۲۲مرتب‌سازی آرایه‌ها در جاوااسکریپت
۲۳متدهای پیمایش آرایه در جاوااسکریپت
۲۴اشیاء تاریخ و زمان در جاوااسکریپت
۲۵فرمت‌های تاریخ و زمان در جاوااسکریپت
۲۶متدهای دریافت تاریخ و زمان در جاوااسکریپت
۲۷متدهای تنظیم زمان و تاریخ در جاوااسکریپت
۲۸شی ریاضی (Math) در جاوااسکریپت
۲۹ایجاد عدد تصادفی در جاوااسکریپت
۳۰مقادیر بولین (Booleans) در جاوااسکریپت
۳۱عملگرهای منطقی و مقایسه‌ای در جاوااسکریپت
۳۲ساختار if else و else if در جاوااسکریپت
۳۳تکه کد Switch در جاوا اسکریپت
۳۴حلقه For در جاوااسکریپت
۳۵حلقه While در جاوااسکریپت
۳۶کلمات کلیدی Break و Continue در جاوااسکریپت
۳۷تبدیل نوع داده‌ها در جاوااسکریپت
۳۸عملیات‌های بیتی در جاوااسکریپت
۳۹عبارات با قاعده در جاوااسکریپت
۴۰خطاها در جاوااسکریپت - رخ دادن خطا و رفع آن
۴۱Scope در جاوااسکریپت
۴۲Hoisting یا جا به جایی کدها در جاوااسکریپت
۴۳استفاده از مد یا حالت سخت‌گیرانه (use strict) در جاوااسکریپت
۴۴کلمه کلیدی This در جاوااسکریپت
۴۵کلمه کلیدی Let در جاوااسکریپت
۴۶ثابت‌ها در جاوااسکریپت
۴۷تعریف توابع به صورت پیکان
۴۸کلاس‌ها در جاوااسکریپت
۴۹اشکال‌زدایی در جاوااسکریپت
۵۰راهنمای استایل و استانداردهای کدنویسی در جاوااسکریپت
۵۱بهترین تمرینات جاوااسکریپت
۵۲اشتباهات رایج در برنامه‌نویسی جاوااسکریپت
۵۳کارایی در جاوااسکریپت
۵۴کلمات رزرو شده در جاوااسکریپت
۵۵ورژن‌های جاوااسکریپت
۵۶ECMAScript 5 - JavaScript 5
۵۷ECMAScript 6 - ECMAScript 2015
۵۸جیسون (JSON) در جاوااسکریپت
فرم‌ها
۱فرم‌ها در جاوااسکریپت
۲API ارزشیابی در جاوااسکریپت
اشیاء (Object)
۱اشیاء در جاوااسکریپت
۲ویژگی‌های اشیاء در جاوااسکریپت
۳متدهای اشیاء در جاوااسکریپت
۴روش‌های دسترسی به شیء در جاوااسکریپت
۵سازنده‌های شیء در جاوااسکریپت
۶شکل اصلی شیء در جاوااسکریپت
۷متدهای شیء در ورژن ES5 جاوااسکریپت
تابع
۱تعریف تابع در جاوااسکریپت
۲پارامتر توابع در جاوااسکریپت
۳فراخوانی تابع در جاوااسکریپت
۴صدا کردن تابع در جاوااسکریپت
۵تابع Apply در جاوااسکریپت
۶بسته‌ها (به انگلیسی: Closures) در جاوااسکریپت
HTML DOM
۱HTML DOM در جاوااسکریپت
۲متدهای HTML DOM در جاوااسکریپت
۳HTML DOM Document در جاوااسکریپت
۴عناصر HTML DOM در جاوااسکریپت
۵reeeeeeeeeeeeeeee
۶تست
۷تست
۸تست
۹تست
۱۰تست
۱۱تست
۱۲تست
۱۳تست


یک تابع جاوااسکریپت بلاکی از کدهاست که برای انجام یک کار به خصوص، طراحی شده‌اند. [۱]

یک تابع جاوااسکریپت زمانی اجرا می‌شود که «چیزی» آن را اجرا کند (فراخوانی کند).

مثال

function myFunction(p1, p2) {
  return p1 * p2;   // The function returns the product of p1 and p2
}

شیوهٔ تعریف توابع (Syntax) در جاوااسکریپت

یک تابع جاوااسکریپت با کلمه کلیدی function شروع می شود ،

یک تابع جاوااسکریپت با کلمهٔ کلیدی​function​شروع می‌شود، بعد از این کلمه، نام تابع قرار گرفته و به دنبال آن () قرار می‌گیرند.

نام توابع می‌تواند شامل:

  • حروف
  • اعداد
  • علامت زیر خط (_)
  • علامت دلار باشد

(همانند قوانینی که برای نام متغیرها وجود دارد).

پرانتزها می‌توانند شامل نام پارامترهای تابع باشند که به وسیلهٔ علامت ویرگول (Comma) از یک دیگر جدا شده‌اند.

(پارامتر ۱، پارامتر دو، ...)

کدی که می‌بایست هنگام فراخوانی تابع اجرا شود، درون آکولاد {}‌ ها قرار می‌گیرد.

function name(parameter1, parameter2, parameter3) {
  // code to be executed
}

لیست پارامتر‌های تابع هنگام تعریف تابع، درون پرانتز () قرار می‌گیرند.

آرگومان‌های تابع، مقادیری هستند که به هنگامی که تابع فراخوانی می‌شود به تابع پاس داده می‌شود.

درون یک تابع، آرگومان‌ها (پارامترهای تابع) همانند متغیرهای محلی (local) رفتار می‌کنند.

تابع‌ها در جاوااسکریپت بسیار شبیه Procedureها یا Subroutineها در سایر زبان‌های برنامه‌نویسی هستند.

اجرای تابع

کدی که درون یک تابع قرار دارد زمانی اجرا می‌شود که «چیزی» تابع را اجرا (فراخوانی) کند:

  • زمانی که یک رویداد رخ می‌دهد (همانند زمانی که کاربر بر روی یک دکمه کلیک می‌کند)
  • زمانی که تابع توسط کد جاوااسکریپت اجرا (فراخوانی) شود
  • به صورت خودکار (خوداجرا)

شما در مورد اجرای توابع در فصول آینده این آموزش، مطالب بیشتری را خواهید آموخت.

بازگشت تابع

زمانی تابع به تکه کد​return​می‌رسد، اجرای تابع متوقف می‌شود.

اگر تابع از یک عبارت فراخوانی شود، جاوااسکریپت پس از اجرای کامل عبارت، “بازمی‌گردد” تا تابع را اجرا کند.

توابع اغلب یک مقدار بازگشتی را محاسبه می‌کنند. مقدار بازگشتی به "فراخوانی کننده"  "بازمی‌گردد".

مثال

حاصل ضرب دو عدد را محاسبه کرده و نتیجه را برمی‌گرداند:

var x = myFunction(4, 3);   // Function is called, return value will end up in x

function myFunction(a, b) {
  return a * b;             // Function returns the product of a and b
}

نتیجه یا همان مقدار x برابر خواهد بود با:

12

چرا باید از توابع استفاده کنیم؟

شما می‌توانید از کد خود چندین بار استفاده کنید: یک بار کد خود را تعریف می‌کنید و چندین بار از آن استفاده می‌کنید.

شما می‌توانید از یک تکه کد چندین بار با آرگومان‌های متفاوتی استفاده کنید تا نتایج متفاوتی را به دست آورید.

مثال

تبدیل فارنهایت به سلسیوس:

function toCelsius(fahrenheit) {
  return (5/9) * (fahrenheit-32);
}
document.getElementById("demo").innerHTML = toCelsius(77);

عملگر () موجب اجرای تابع می‌شود.

درمثال بالا،​toCelsius​به شیء تابع اشاره می‌کند و​toCelsius()​به نتیجه تابع اشاره می‌کند.

فراخوانی یک تابع بدون () موجب می‌شود که کدهای درون تابع به جای نتیجهٔ تابع به عنوان خروجی بازگردانده شود.

مثال

function toCelsius(fahrenheit) {
  return (5/9) * (fahrenheit-32);
}
document.getElementById("demo").innerHTML = toCelsius;

استفاده از توابع، همانند استفاده از مقادیر متغیرها است.

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

مثال

به جای استفاده از یک متغیر برای ذخیرهٔ مقدار بازگشتی تابع همانند مثال زیر:

var x = toCelsius(77);
var text = "The temperature is " + x + " Celsius";

شما می‌توانید فراخوانی تابع را به صورت مستقیم و همانند مقدار یک متغیر استفاده کنید:

var text = "The temperature is " + toCelsius(77) + " Celsius";
شما مطالب بیشتری را در مورد توابع بعداً در این آموزش خواهید آموخت.

متغیرهای محلی

متغیرهایی که درون یک تابع در جاوااسکریپت تعریف می‌شود، به عنوان متغیر محلی (LOCAL) آن تابع شناخته می‌شوند.

از متغیرهای محلی، تنها می‌توان در توابع مربوط به خودشان استفاده کرد.

مثال

// code here can NOT use carName

function myFunction() {
  var carName = "Volvo";
  // code here CAN use carName
}

// code here can NOT use carName

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

متغیرهای محلی زمانی ساخته می‌شوند که اجرای تابع شروع می‌شود و زمانی حذف می‌شوند که اجرای تابع به صورت کامل به اتمام رسیده باشد.

منابع آموزشی