آموزش کاربرد علامت تعجب قبل از توابع در Javascript



visibility  
mode_comment   ۰

آموزش کاربرد علامت تعجب قبل از توابع در Javascript

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

در Javascript، تابع می تونه به شکل زیر تعریف بشه:

دقت کنید که در کد بالا از semicolon استفاده نشده. در این کد تابع foo صرفا معرفی شده و برای اجرا کردن این تابع باید اون رو بصورت foo() فراخوانی کنید. به این نوع function declaration میگن.

اما اگر از علامت تعجب استفاده بشه و به جای دستور function foo() {}  از !function foo() {} کمک بگیرید و با اینکار دیگه function declaration نیست و function expression محسوب میشه. علامت تعجب به تنهایی باعث فراخوانی و اجرا شدن تابع مورد نظر نمیشه ولی میتونیم با قرار دادن () در آخر تعریف تابع، بصورت مستقیم اون رو فراخوانی کنیم. یعنی به یکباره هم تابع مورد نظر رو تعریف کردیم و هم اون رو فراخوانی کردیم.

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

زمانی که از IIFE ها استفاده میکنید، undefined هم معمولا در console چاپ میشه و به این دلیل هست که شما در IIFE زیاد از return استفاده نمیکنید و چیزی رو برگشت نمیدید. اما وقتی از علامت تعجب یا نقیض قبل از تابع استفاده میکنید، با توجه به حالتهای مختلف، true و false در console چاپ میشه.

اگر چیزی رو return نکنید، پس بصورت ضمنی undefined برگشت داده میشه و !undefined برابر با true میشه. اما اگر مقدار true یا چیزی که true باشه رو برگشت بدید، !true برابر با false میشه. این مورد شاید خیلی کاربرد نداشته باشه ولی بهتره که اون رو بدونین.

متخصص وردپرس
قالب ها و پلاگین های حرفه ای وردپرس رو خودت بنویس! بازار طراحی قالب و پلاگین نویسی وردپرس به شدت داغه و اگر بلد باشید با برنامه نویسی اختصاصی، قالب ها و پلاگین های دلخواه بنویسید تو مارکت های مطرح دنیا و یا از طریق فریلنسری می تونید به درآمد بالا برید. دوره متخصص وردپرس سون لرن رو حتما ببینید: متخصص وردپرس arrow_back
comment دیدگاه کاربران

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.