آموزش کلمه کلیدی let در جاوا اسکریپت
کلمه کلیدی let در اکما اسکریپت 6 در سال 2015 معرفی شده است.
متغیرهای تعریف شده با کلمه کلیدی let نمی توانند باز-تعریف شوند.
متغیرهای تعریف شده با let باید قبل از استفاده شدن، تعریف شده باشند.
متغیرهای تعریف شده با let، از میدان دید بلوکی(Block Scope) برخوردار هستند.
عدم امکان باز-تعریف شدن
متغیرهای تعریف شده با کلمه کلیدی let نمی توانند دوباره تعریف شوند؛ یعنی نمی توانند باز-تعریف شوند. ما نمی توانیم به طور تصادفی یک متغیر را باز-تعریف کنیم. مثلاً با استفاده از کلمه کلیدی let نمی توانیم به صورت زیر عمل کنیم:
مثال شماره 1
let x = "John Doe";
let x = 0;
// SyntaxError: 'x' has already been declared
اما با استفاده از var می توانیم به صورت زیر عمل کنیم:
مثال شماره 2
var x = "John Doe";
var x = 0;
میدان دید بلوکی(Block Scope)
قبل از اکما اسکریپت 6 در سال 2015، جاوا اسکریپت تنها از میدان دید سراسری(Global Scope) و میدان دید تابعی(Function Scope) استفاده می کرد. اما اکما اسکریپت 6، دو کلمه کلیدی جدیدِ let و const را معرفی کرد. در جاوا اسکریپت، این دو کلمه کلیدی، یک میدان دید بلوکی(Block Scope) را ارائه می دهند. متغیرهایی که در درون یک بلوک یعنی یک جفت آکولاد { } قرار گیرند، نمی توانند در بیرون از بلوک مورد دسترسی قرار گیرند.
{
let x = 2;
}
// استفاده کنیم x در اینجا نمی توانیم از
متغیرهای تعریف شده با کلمه کلیدی var نمی توانند یک میدان دید بلوکی داشته باشند. این متغیرها اگر در داخل یک جفت آکولاد { } تعریف شوند، می توانند در بیرون از بلوک نیز مورد دسترسی قرار گیرند:
{
var x = 2;
}
// می تواند در اینجا مورد استفاده قرار گیرد x متغیر
باز-تعریف کردن متغیرها
اگر بخواهیم با استفاده از کلمه کلیدی var، یک متغیر را باز-تعریف کنیم، می تواند باعث ایجاد مشکلاتی شود. باز-تعریف کردن یک متغیر در درون یک بلوک، باعث باز تعریف شدن متغیر در بیرون از بلوک نیز می شود.
مثال شماره 3
var x = 10;
// برابر با 10 است x در اینجا
{
var x = 2;
// برابر با 2 است x در اینجا
}
// برابر با 2 است x در اینجا
امتحان کنیدباز تعریف کردن یک متغیر با استفاده از کلمه کلیدی let می تواند این مشکل را حل کند. با استفاده از کلمه کلیدی let، باز تعریف کردن یک متغیر در درون یک بلوک باعث باز تعریف کردن آن متغیر در بیرون از بلوک نمی شود:
مثال شماره 4
let x = 10;
// برابر با 10 است x در اینجا
{
let x = 2;
// برابر با 2 است x در اینجا
}
// برابر با 10 است x در اینجا
امتحان کنید
پشتیبانی مرورگرها
کلمه کلیدی let کاملاً در اینترنت اکسپلورر 11 یا نسخه های قبل از آن پشتیبانی نمی شود. در جدول زیر، اولین نسخه مرورگرهایی که کاملاً از کلمه کلیدی let پشتیبانی می کنند، مشخص شده است:
![]() |
![]() |
![]() |
![]() |
![]() |
| Chrome 49 | Edge 12 | Firefox 44 | Opera 36 | Safari 11 |
| Mar, 2016 | Jul, 2015 | Jan, 2015 | Mar, 2016 | Sep, 2017 |
باز تعریف کردن
باز تعریف کردن یک متغیر جاوا اسکریپت با استفاده از کلمه کلیدی var در هرجایی از برنامه مجاز است:
باز تعریف کردن یک متغیر، با استفاده از کلمه کلیدی let در یک بلوک مجاز نیست:
var x = 2; // مجاز
let x = 3; // غیرمجاز
{
let x = 2; // مجاز
let x = 3; // غیرمجاز
}
{
let x = 2; // مجاز
var x = 3; // غیر مجاز
}
باز تعریف کردن یک متغیر با استفاده از کلمه کلیدی let در یک بلوک دیگر مجاز است:
در بالا قرار گرفتن متغیرها
متغیرهایی که با استفاده از کلمه کلیدی var تعریف شده اند، در بالای کدها قرار می گیرند(hoisted to the top) و می توانند در هر زمانی مقدار دهی اولیه شوند. یعنی اینکه ما می توانیم از این متغیر، قبل از اینکه تعریف شود، استفاده کنیم:
اگر بخواهید در مورد بالا قرار گرفتن متغیرها در حین اجرای کدها، اطلاعات بیشتری بیاموزید می توانید به این مقاله مراجعه کنید.
متغیرهای تعریف شده با استفاده از کلمه کلیدی let نیز در بالای بلوک قرار می گیرند اما مقدار دهی اولیه نمی شوند. این یعنی اینکه استفاده از یک متغیر let، قبل از اینکه تعریف شود، باعث ایجادی خطای ReferenceError می شود.
- بازدید: 286





1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.