میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

Hoisting در جاوا اسکریپت

hoisting چیست ؟ جاوا اسکریپت به طور پیش فرض تعاریف را به بالای دیگر کد ها در هر دامنه (scope) منتقل می کند. یعنی اگر در یک تابع متغیر یا متغیرهایی تعریف شوند، این تعاریف به بالاترین مکان در آن تابع منتقل می شوند. به این کار hoisting در جاوا اسکریپت یا بالا بردن می گویند.

تعاریف بالا می روند

در جاوا اسکریپت ، متغیر می تواند پس از استفاده ، تعریف شود.

به عبارت دیگر؛ یک متغیر را می توانیم قبل از اینکه تعریف شود، استفاده کنیم.

 

هر دو مثال زیر یک نتیجه دارند :

hoisting رفتار پیش فرض جاوا اسکریپت در انتقال همه تعاریف به بالای دامنه فعلی (به بالای اسکریپت فعلی یا تابع فعلی) است.

کلمات کلیدی let و const

متغیرها و ثابت های اعلام شده با let یا const hoisting نمی شوند.

 

مقدار دهی اولیه Hoisting نمی شود

جاوا اسکریپت فقط تعاریف را بالا می برد ، نه مقداردهی اولیه را.

نتیجه مثال ۱ با نتیجه مثال ۲ ، یکسان نیست

آیا این بدان معنیست که y در مثال آخر تعریف نشده است؟

دلیل این امر این است که فقط تعریف (var y) به بالا می رود، نه مقدار دهی اولیه (= ۷) .

به دلیل hoisting (بالا رفتن)، y قبل از استفاده تعریف شده است ، اما از آنجا که مقدار دهی اولیه بالا نمی رود، مقدار y تعریف نشده است.

مثال ۲ را می توان اینگونه نیز نوشت:

همیشه متغیرهای خود را در بالا تعریف کنید!

بالا بردن یا hoisting (برای بسیاری از توسعه دهندگان) یک رفتار ناشناخته یا نادیده گرفته از جاوا اسکریپت است.

اگر یک توسعه دهنده رفتار hoisting در جاوا اسکریپت را نفهمد ، ممکن است برنامه هایش دچار اشکال (خطا) شوند.

برای جلوگیری از اشکالات ، همیشه همه متغیرها را در ابتدای هر دامنه تعریف کنید.

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

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

 

امیدواریم آموزش Hoisting در جاوا اسکریپت نیز برای شما مفید واقع شده باشد .برای مطالعه پست‌های بیشتر ، ما را در مدرسه کدنویسی تلگرام  و یا در تی جوان اینستاگرام دنبال کنید.

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

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟