سلام رفقا
امیدوارم حالتون عالی باشه.
اوایل که داشتم جاوا اسکریپت رو یاد میگرفتم، بعضی از کدهایی که مینوشتم باگ داشت و مینوشت: RefrenceError یا SyntaxError
واقعا نمیدونستم ایراد کار کجاست....
بعد از مدتی متوجه شدم که یه مفهومی در جاوا اسکریپت وجود داره به نام hoisting که مطمئنم خیلیامون خواسته یا ناخواسته باهاش دست و پنجه نرم کردیم تا این ایرادات رو برطرف کردیم.
امروز میخوایم یاد بگیریم که hoisting چیه؟ در جاوا اسکریپت چطوری استفاده میشه؟ و ....
خب بریم ببینیم hoisting که میگن سخته سخته چیه؟
مفهوم hoisting در لغت به معنی بالا بردن، بالا اوردن هستش.
حالا یعنی چی؟
یعنی آقا یا خانم محترم، نصف باگ هایی که داری باهاشون دست و پنجه نرم میکنی برای اینه که داری از یه متغیر در جاوا اسکریپت استفاده میکنی ، بدون این که اون بیچاره رو تعریف کنی.
این مثالو نگاه کن:
تو این مثال گفتم که دو تا سیب دارم، بیا اونارو تو کنسول نمایش بده.
جاوا اسکریپتم میاد میگه، نه داداش از این کارا نکن با مااااااااااااااا.
بهت ارور پایینو نشون میده:
یعنی تو اصلا اپلی برای من تعریف نکردی که حالا میخوای ازش استفاده کنی.... اول متغیر سیب رو تو خط بالاش برام تعریف کن، بعدا ازش استفاده کن....
تموم شد و رفت.
پس اگه میخوای به باگ نخوری، عکس پایینو ببین:
پس هرچندتا متغیر که داری، اول بیا تعریفش کن(حالا فرق نداره با let تعریف میکنی یا const) ، بعدا استفاده کن.
اینم از مفهوم hoisting
یه نکته مهم: سعی کنن همیشه تو خط اول فایل جاوا اسکریپت
بنویسی: “use strict”
خییلی خییلی میتونه به کمکت بیاد.
امیدوارم با مفهوم hoisting آشنا شده باشی. خیلی تلاش کردم که به سادگی این مطلب رو بنویسم تا همه بتونن استفاده کنن
اگه دوست داشتی، تو هم این مطلب رو به بقیه یاد بده تا دیگه به مشکل برنخورن.
دوستون دارم.