سعید عبدالهی
سعید عبدالهی
خواندن ۲ دقیقه·۱ سال پیش

مفهوم hoisting در جاوا اسکریپت

hoisting in js
hoisting in js


سلام رفقا

امیدوارم حالتون عالی باشه.

اوایل که داشتم جاوا اسکریپت رو یاد میگرفتم، بعضی از کدهایی که مینوشتم باگ داشت و مینوشت: RefrenceError یا SyntaxError

واقعا نمیدونستم ایراد کار کجاست....

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

امروز میخوایم یاد بگیریم که hoisting چیه؟ در جاوا اسکریپت چطوری استفاده میشه؟ و ....

خب بریم ببینیم hoisting که میگن سخته سخته چیه؟

مفهوم hoisting در لغت به معنی بالا بردن، بالا اوردن هستش.

حالا یعنی چی؟

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

این مثالو نگاه کن:

مثال غلط
مثال غلط

تو این مثال گفتم که دو تا سیب دارم، بیا اونارو تو کنسول نمایش بده.

جاوا اسکریپتم میاد میگه، نه داداش از این کارا نکن با مااااااااااااااا.

بهت ارور پایینو نشون میده:

ارور
ارور

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

تموم شد و رفت.

پس اگه میخوای به باگ نخوری، عکس پایینو ببین:

مثال درست
مثال درست


پس هرچندتا متغیر که داری، اول بیا تعریفش کن(حالا فرق نداره با let تعریف میکنی یا const) ، بعدا استفاده کن.

اینم از مفهوم hoisting

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

بنویسی: “use strict”

خییلی خییلی میتونه به کمکت بیاد.

امیدوارم با مفهوم hoisting آشنا شده باشی. خیلی تلاش کردم که به سادگی این مطلب رو بنویسم تا همه بتونن استفاده کنن

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

دوستون دارم.

جاوا اسکریپتjavascripthoisting
میلیون‌ها کیلومتر اسکرول کردم تا به هدفم نزدیک بشم و این داستان همچنان ادامه داره...
شاید از این پست‌ها خوشتان بیاید