https://themohsen.me || Front-End @ Yasna.team
بررسی عبارات در جاوا اسکریپت
یه سوال
میدونید خروجی این قطعه کد چی میشه ؟
![](https://files.virgool.io/upload/users/81461/posts/hz3zssiyvrgr/igswije8c0xq.png)
بنظرم قبل از اینکه برید و پایین تر رو نگاه کنید، جوابی که فکر میکنید ممکنه درست باشه رو یادداشت کنید :)
این یکی چی؟ دربارهی این چی فکر میکنید؟
![](https://files.virgool.io/upload/users/81461/posts/hz3zssiyvrgr/oiqwfx6nsl2f.png)
شاید این دوتا قطعه کد تو نگاه اول تفاوت خاصی نداشته باشن، اما اگه اجراشون کنید، میبینید که توی نتیجه خیلی فرق داره :)
توی قطعه کد اولی ، وقتی که بعد از دستور return ، فاصله افتاده و { foo: 'bar' } توی خط بعد ساخته شده ، چیزی که اجرا میشه اینه:
return ;
و در نتیجه خروجی هم برابر میشه با undefined.
اما قطعه کد دوم همون جواب مورد انتظار ما ینی
return { foo: 'bar' }
رو انجام میده که خب منطقیه
اما این اتفاق برای چی رخ میده؟
موتور اصلی جاوا اسکریپت، طوری تعبیه شده که در این موارد، عبارتی رو درنظر میگیره که در مقابل دستور نوشته شده باشه، وگرنه خودش یه ; میذاره انتهای خط.
ینی اینجا وقتی به عبارت return میرسه ، چیزی برای انجام دستور نمیبینه، پس جلوش یه ; در نظر میگیره و undefined میشه جواب ما
مطلبی دیگر از این انتشارات
بررسی مفهوم Class در جاوا اسکریپت
مطلبی دیگر از این انتشارات
فرهنگ بازنگری کد
مطلبی دیگر از این انتشارات
الگوهای اشتباه در سئو: ارجاع ۳۰۱ ، راهی برای هدایت خطاهای ۴۰۴ به صفحه اصلی سایت شما