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

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

ECMAScript 2015 دو کلید واژه مهم و جدید جاوا اسکریپت را معرفی کرد: let و const.

این دو کلمه کلیدی بلوک محدوده متغیرها (و ثابت ها) را در جاوا اسکریپت ارائه می دهند.

قبل از ES2015 ، جاوا اسکریپت تنها دو نوع دامنه داشت: Global Scope و Function Scope .

دامنه سراسری

متغیرهای اعلام شده در دامنه سراسری (خارج از هر عملکرد) دارای محدوده سراسری یا Global Scopeهستند .

دامنه تابع

متغیرهای اعلام شده بصورت محلی (درون یک تابع) دارای محدوده تابع یا Function Scope هستند.

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

متغیرهای اعلام شده با کلمه کلیدی var نمی توانند دامنه بلوک یا Block Scopeداشته باشند .

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

متغیرهای اعلام شده با کلمه کلیدی let می توانند دامنه بلوک یا Block Scope داشته باشند.

متغیرهای اعلام شده توسط let در داخل یک بلوک { } ، از خارج از بلوک قابل دسترسی نیستند:

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

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

تعریف مجدد متغیر در داخل یک بلوک ، متغیر خارج از بلوک را نیز دوباره تعریف می کند:

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

تعریف مجدد متغیر در داخل یک بلوک با استفاده از کلید واژه let، متغیر خارج از بلوک را تغییر نمی دهد:

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

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

گوگل کروماینترنت اکسپلوررفایرفاکسسافاریاُپرا
Chrome 49Edge 12Firefox 44Safari 11Opera 36
Mar, 2016Jul, 2015Jan, 2015Sep, 2017Mar, 2016

دامنه حلقه

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

var i = ۵;
for (var i = ۰; i < ۱۰; i++) {
// some statements
}
// Here i is 10

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

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

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

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

 

دامنه تابع

متغیرهای اعلام شده با var و let کاملاً مشابه هم هستند وقتی که درون یک تابع اعلام می شوند.

هر دوی آنها دارای دامنه تابع خواهند بود، یعنی به هیچکدام از آنها از بیرون تابع نمی توان دسترسی داشت :

دامنه سراسری

متغیرهای اعلام شده با var و let کاملاً مشابه هم هستند وقتی که خارج از یک بلوک اعلام می شوند.

هر دو آنها دارای دامنه سراسری یا Global Scope خواهند بود :

متغیرهای سراسری در HTML

در جاوا اسکریپت، دامنه سراسری، محیط جاوا اسکریپت است.

در HTML ، دامنه سراسری، شیء پنجره است.

متغیرهای سراسری تعریف شده با کلید واژه var متعلق به شیء پنجره هستند:

var carName = “Volvo”;
// code here can use window.carName

متغیرهای سراسری تعریف شده با کلید واژه let متعلق به شیء پنجره نیستند:

تعریف مجدد

تعریف مجدد متغیر جاوا اسکریپت با var ، در هر جای برنامه مجاز است:

var x = ۲;
// Now x is 2
var x = ۳;
// Now x is 3

تعریف مجدد متغیری که با var تعریف شده، بوسیله let، در همان دامنه یا در همان بلوک مجاز نیست:

Hoisting یا بالابردن

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

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

این خوب است:

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

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

این کد منجر به خطای ReferenceError می شود :

 

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

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

ارسال دیدگاه

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

×

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

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

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

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