من شنیده ام که let به عنوان یک متغیر محلی توصیف می شود، اما هنوز کاملاً مطمئن نیستم که چگونه متفاوت از کلمه کلیدی var رفتار می کند.
چه تفاوت هایی دارند؟ چه زمانی باید let به جای var استفاده شود؟
This community is for professionals and enthusiasts of our products and services.
Share and discuss the best content and new marketing ideas, build your professional profile and become a better marketer together.
من شنیده ام که let به عنوان یک متغیر محلی توصیف می شود، اما هنوز کاملاً مطمئن نیستم که چگونه متفاوت از کلمه کلیدی var رفتار می کند.
چه تفاوت هایی دارند؟ چه زمانی باید let به جای var استفاده شود؟
تفاوت بین "let" و "var" در جاوااسکریپت این است که "let" دارای حیطه بلوکی (block scope) است، اما "var" دارای حیطه تابعی (function scope) است. این بدان معناست که اگر یک متغیر را با "let" درون یک بلوک کد (مانند یک حلقه یا یک شرط) تعریف کنید، آن متغیر فقط در آن بلوک قابل دسترسی است. اما اگر یک متغیر را با "var" درون یک بلوک کد تعریف کنید، آن متغیر در تمام تابعی که آن بلوک درون آن قرار دارد قابل دسترسی است. مثال زیر این تفاوت را نشان میدهد:
همچنین "let" از پدیده hoisting پشتیبانی نمیکند، اما "var" از آن پشتیبانی میکند. این بدان معناست که اگر یک متغیر را با "let" قبل از تعریف آن استفاده کنید، یک خطا دریافت خواهید کرد. اما اگر یک متغیر را با "var" قبل از تعریف آن استفاده کنید، مقدار undefined دریافت خواهید کرد. مثال زیر این تفاوت را نشان میدهد: