دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۴
  • آبان

جلسه ۶۵ : تعریف های تابع در جاوا اسکریپت

  • دسته‌بندی‌ها :
جلسه ۶۵ : تعریف های تابع در جاوا اسکریپت
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، یکی از بخش های اصلی و بسیار پرکاربرد در اکثر زبان های برنامه نویسی، تعریف توابع در هر زبان برنامه نویسی می باشد، توابع یک بلوک کد مشخص می باشد که می تواند پارامترهایی را دریافت کرده و پس از انجام عملیات مختلف یک خروجی برگرداند، البته می تواند بدون بازگشت خروجی نیز تعریف شود، تعریف توابع به کاهش حجم و خوانایی کدها کمک بسیاری می کند، البته در زبان های برنامه نویسی مختلف شکل و سینتکس تعریف و استفاده از توابع تقریبا متفاوت است، از این رو در این بخش ما به بررسی تعریف های تابع در جاوا اسکریپت پرداخته ایم، با ما همراه باشید.

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

      در ادامه این بخش شما را با انواع تعریف های تابع در جاوا اسکریپت و سینتکس آن ها آشنا می کنیم.

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

      همچنین شما می توانید از یک تعریف تابع و یا عبارت (expression) تابع استفاده کنید.

      آشنایی با تعریف های تابع در جاوا اسکریپت

      در بخش های قبلی این دوره ما به سینتکس کلی تعریف تابع در جاوا اسکریپت اشاره کردیم :

      مثال : 

      توابع تعریف شده بلافاصله اجرا نمی شوند.بلکه آنها “برای استفاده های بعدی ذخیره شده اند” و در زمان لازم فراخوانی و اجرا می شوند.

      مثال : سینتکس تابع در جاوا اسکریپت
      خودتان امتحان کنید »

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

      عبارات تابع

      توابع جاوا اسکریپت را همچنین می توان به صورت عبارت (expression) تعریف کرد.

      یک عبارت تابع همچنین می تواند در یک متغیر ذخیره شود :

      مثال : ذخیره تابع در متغیر
      خودتان امتحان کنید »

      پس از تعریف تابع در یک متغیر ذخیره می شود،و متغیر می تواند به عنوان یک تابع استفاده شود:

      مثال : تعریف تابع در متغیر
      خودتان امتحان کنید »

      تابع بالا در واقع یک تابع ناشناس (یک تابع بدون نام) است.

      توابع ذخیره شده در متغیرها نیازی به نام تابع ندارند. آنها همیشه با استفاده از نام متغیر (call) فراخوانی می شوند.

      نکته : تابع فوق با semicolon به پایان می رسد زیرا بخشی از یک عبارت اجرایی است.

      سازنده ی ()Function

      همانطور که در مثال قبلی نیز مشاهده کردیم، توابع جاوا اسکریپت با کلیدواژه function تعریف می شوند.

      توابع را می توان با یک ساختار ساخته شده در جاوا اسکریپت () Function تعریف کرد.

      مثال : سازنده ی تابع
      خودتان امتحان کنید »

      شما در واقع لازم نیست از تابع سازنده استفاده کنید. مثال فوق همانند سینتکس زیر است:

      مثال : سینتکس معادل تابع سازنده
      خودتان امتحان کنید »

      نکته : در اغلب موارد شما می توانید از کلید واژه ی new در جاوا اسکریپت به دلیل پیچیده تر شدن کد و مشکلات دیگر، صرف نظر کنید.

      hoisting در توابع

      پیش از این در آموزش های قبلی، در مورد ویژگی “hoisting” مطالبی را ارائه کردیم.

      رفتار hoisting پیش فرض جاوا اسکریپت است که تعاریف را به بالاترین سطح کدها می برد.

      Hoisting روی تعریف متغیر و تعریف توابع اعمال می شود.

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

      مثال : 

      البته در توابعی که به صورت عبارت تعریف شده اند، Hoisting اعمال نمی شود.

      توابع خودکار

      توابع خودکار (self-invoking) عبارت توابع هستن که در حالت “self-invoking” ایجاد می شوند.

      یک عبارت self-invoking می تواند به طور خودکار و بدون اینکه نیاز به فراخوانی باشد، شروع به اجرا کند.

      عبارات توابع در صورتی به طور خودکار اجرا خواهند شد که در جلوی تعریف عبارت () قرار دهیم.

      یک تابع از نوع تعریف معمولی نمی تواند ویژگی self-invoke را داشته باشد.

      شما باید پرانتز در اطراف تابع اضافه کنید تا نشان دهد که این یک عبارت تابع است:

      مثال : تابع self-invoke
      خودتان امتحان کنید »

      تابع بالا در واقع یک تابع self-invoking ناشناس است (تابع بدون نام).

      توابع را می توان به عنوان مقادیر استفاده کرد

      توابع جاوا اسکریپت می توانند به عنوان مقادیر استفاده شوند :

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

      تعریف توابع در قالب عبارات

      مثال : تعریف توابع در قالب عبارات
      خودتان امتحان کنید »

      توابع آبجکت هستند

      عملگر typeof در جاوا اسکریپت “function” را برای توابع بازگشت می دهد.

      اما توابع جاوا اسکریپت می توانند بهترین آبجکت ها باشند.

      توابع جاوا اسکریپت دارای خصوصیات و متدها هستند.

      خصوصیت arguments.length طول مقدار آرگومان دریافت شده را هنگام فراخوانی تابع به دست می دهد:

      مثال : دریافت طول آرگومان
      خودتان امتحان کنید »

      متد () toString یک تابع را به عنوان یک رشته بازمی گرداند.

      مثال : بازگرداندن تابع در قالب رشته
      خودتان امتحان کنید »

      یک تابع تعریف شده به عنوان ویژگی یک آبجکت، یک متد برای آبجکت نامیده می شود.
      یک تابع طراحی شده برای ایجاد آبجکت جدید، سازنده آبجکت است.

      توابع Arrow

      توابع Arrow اجازه ی نوشتن یک سینتکس کوتاه برای عبارت تابع را می دهد.

      شما به کلیدواژه function ، کلمه کلیدی return و براکت های کروشه نیاز ندارید.

      مثال : توابع arrow
      خودتان امتحان کنید »

      توابع Arrow این کار را ندارند. آنها برای تعریف متدهای آبجکت مناسب نیستند.

      توابع Arrow افزایش نمی یابد. آنها باید قبل از استفاده تعریف شوند.

      استفاده از const امن تر از استفاده از var است، زیرا یک عبارت تابع همیشه مقدار ثابت دارد.

      اگر تابع یک دستور واحد باشد.شما فقط می توانید کلمات کلیدی بازگشت و براکت های curly را حذف کنید. از این جهت ممکن است عادت خوبی باشد که همیشه آنها را حفظ کنید:

      مثال : توابع Arrow
      خودتان امتحان کنید »

      نکته : توابع Arrow در مرورگر IE11 و نسخه های قدیمی تر پشتیبانی نمی شود.

      کلام آخر

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

      QR:  جلسه ۶۵ : تعریف های تابع در جاوا اسکریپت
      به اشتراک بگذارید