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



visibility  
mode_comment   ۰

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

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

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

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

متخصص جاوا اسکریپت
با جاوا اسکریپت جادوگری کنید! آیا می دونید با زبان جاوااسکریپت می تونید، برای فرانت اند و بک اند وبسایت ها برنامه نویسی کنید؟ همینطور اپلیکیشن دسکتاپ و موبایل بسازید؟ اگر دوست داری اینکارها رو انجام بدی و React, ElectronJS, ReactNative, NodeJS,MongoDB و ... رو تو یه دوره یاد بگیری، متخصص جاوااسکریپت سون لرن رو حتما ببین : متخصص جاوا اسکریپت arrow_back

اما اگر از علامت تعجب استفاده بشه و به جای دستور 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 میشه. این مورد شاید خیلی کاربرد نداشته باشه ولی بهتره که اون رو بدونین.

comment دیدگاه کاربران

نیاز به لاگین

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