دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۲
  • آبان

جلسه ۴۴ : کلمه ی کلیدی let در جاوا اسکریپت

  • دسته‌بندی‌ها :
جلسه ۴۴ : کلمه ی کلیدی let در جاوا اسکریپت
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، ES2015 دو کلید واژه مهم جدید جاوا اسکریپت را معرفی کرد: this و const. این دو کلیدواژه متغیر دامنه بلوک (و ثابت) در جاوا اسکریپت را ارائه می دهند. پیش از ES2015، جاوا اسکریپت تنها دو نوع دامنه داشت: سطح عمومی و سطح تابع، در این بخش شما را با دامنه های جاوا اسکریپت و عملکرد و کاربرد کلمه ی کلیدی let در جاوا اسکریپت آشنا خواهیم کرد.

      کلمه ی کلیدی let در جاوا اسکریپت

      در ادامه ی این مبحث در ابتدا به بررسی سطوح مختلف Scope و سپس کلمه ی کلیدی let در جاوا اسکریپت می پردازیم.

      همانطور که گفته شد تا قبل از ES2015 جاوا اسکریپت شامل دو نوع Scope بود:

      • Global Scope
      • Function Scope

      Global Scope

      متغیرهایی که به صورت عمومی (خارج از توابع) تعریف می شوند، شامل Global Scope می شوند.

      مثال : نوع Global Scope
      خودتان امتحان کنید »

      متغییرهای Global هز هر کجای برنامه ی جاوا اسکریپت در دسترس هستند.

      توابع Scope

      متغیرهایی که به صورت محلی تعریف شده اند در واقع داخل یک تابع قرار دارند،

      مثال : توابع scope
      خودتان امتحان کنید »

      متغیرهای محلی فقط در داخلی تابعی که تعریف شده اند قابل دسترس اند.

      بلوک Scope در جاوا اسکریپت

      متغیرها با کلمه کلیدی var قابل تعریف اند و نمی تواند سطح Scope داشته باشند.

      متغیرهایی که داخل بلوک {} تعریف شده باشند، خارج از آن نیز قابل دسترس اند.

      مثال : 

      تا قبل از جاوا اسکریپت ES2015 سطح Scope  مطرح نبود.

      متغیرهای تعریف شده با کلمه کلیدی let می تواند سطح Scope داشته باشند.

      در این صورت متغیرهایی که داخل بلوک {} تعریف شده باشند، خارج از آن قابل دسترس نیستند.

      مثال : 

      تعریف مجدد متغیرها

      تعریف متغیرها با کلمه کلیدی var می توان باعث بروز مشکلاتی شود.

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

      مثال : تعریف مجدد متغیرها
      خودتان امتحان کنید »

      همچنین تعریف مجدد متغیرها با کلمه کلیدی let می تواند چنین مشکلاتی را حل کند.

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

      مثال : تعریف متغیر با کلمه کلیدی let
      خودتان امتحان کنید »

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

      کلمه کلیدی let در Internet Explorer 11 و نسخه های قدیمی تر آن پشتیبانی نمی شود.

      جدول زیر اولین نسخه ی مرورگرها را که به طور کامل از کلمه کلیدی let پشتیبانی می کنند را نشان می دهد:

       Chrome 49IE / Edge 12Firefox 44Safari 11Opera 36
      Mar, 2016Jul, 2015Jan, 2015Sep, 2017Mar, 2016

      حلقه ی Scope

      استفاده از var در یک حلقه :

      مثال : استفاده از let
      خودتان امتحان کنید »

      استفاده از let در یک حلقه :

      مثال : استفاده از let در یک حلقه
      خودتان امتحان کنید »

      در مثال اول متغیری که مجددا با کلمه ی کلیدی var داخل حلقه تعریف شده است، خارج از حلقه نیز با همان مقداری که داخل حلقه تعریف شده، شناخته می شود.

      در مثال دوم متغیری که مجددا با کلمه ی کلیدی let داخل حلقه تعریف شده است، در خارج از حلقه با مقداری که در تعریف اولیه در خارج از حلقه تعریف شده شناخته می شود.

      تابع Scope

      متغیرهایی که با کلمات کلیدی var یا let داخل یک حلقه تعریف می شوند،مشابه یکدیگرند.

      مثال : 

      مثال : 

      Global Scope (عمومی)

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

      مثال : 

      مثال : 

      متغیرهای عمومی در HTML

      در جاوا اسکریپت global scope محیط جاوا اسکریپت است.

      در HTML نیز global scope آبجکت پنجره است.

      متغیرهای عمومی که با var تعریف شده اند در طول آبجکت پنجره در دسترس اند.

      مثال-

      مثال : متغیرهای عمومی تعریف شده با var
      خودتان امتحان کنید »

      متغیرهای عمومی که با let تعریف شده اند در طول آبجکت پنجره در دسترس نیستند.

      مثال-

      مثال : متغیرهای عمومی تعریف شده با let
      خودتان امتحان کنید »

      تعریف مجدد

      تعریف مجدد متغیرها با کلمه کلیدی var در هر کجای برنامه ی جاوا اسکریپت در دسترس اند.

      مثال : تعریف مجدد متغیرها با var
      خودتان امتحان کنید »

      اگر متغیری که با var تعریف شده مجددا با let تعریف شود، در همان scope یا بلوک { } ناشناخته است.

      مثال-

      مثال : 

      اگر متغیری که با let تعریف شده مجددا با let تعریف شود، در همان scope یا بلوک { } ناشناخته است.

      مثال-

      مثال : 

      اگر متغیری که با let تعریف شده مجددا با var تعریف شود، در همان scope یا بلوک { } ناشناخته است.

      مثال-

      مثال : 

      تعریف مجدد یک متغیری که با let تعریف شده ، در یک scope و یا بلوک {} دیگر، مجاز است.

      مثال : تعریف مجدد متغیر با let در سایر بلوک
      خودتان امتحان کنید »

      Hoisting

      متغیرهایی که با var تعریف شده باشند، به بالا hoist می شوند.

      بنابراین در این حالت شما می توانید از یک متغیر قبل از تعریف کردن آن استفاده کنید :

      مثال : استفاده از یک متغیر قبل از تعریف آن
      خودتان امتحان کنید »

      متغیرهایی که با let تعریف شده باشند، به بالا hoist نمی شوند.

      اگر از متغیری که با let تعریف شده قبل از تعریف آن استفاده کنید، در این صورت با خطای ReferenceError رو به رو می شوید.

      متغیر در آغاز “بلوک موقتی” از زمان شروع بلوک تا زمانی که اعلام شود:

      مثال : 

      کلام آخر

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

      QR:  جلسه ۴۴ : کلمه ی کلیدی let در جاوا اسکریپت
      به اشتراک بگذارید