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

Ratings
(0)

کلمه کلیدی 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 در هرجایی از برنامه مجاز است:

مثال شماره 5

var x = 2;
// برابر با 2 است x اکنون

var x = 3;
// برابر با 3 است x اکنون
امتحان کنید

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

var x = 2;   // مجاز
let x = 3;   // غیرمجاز

{
let x = 2;   // مجاز
let x = 3;   // غیرمجاز
}

{
let x = 2;   // مجاز
var x = 3;   // غیر مجاز
}

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

مثال شماره 6

let x = 2;   // مجاز

{
let x = 3;   // مجاز
}

{
let x = 4;    // مجاز
} 
امتحان کنید

در بالا قرار گرفتن متغیرها

متغیرهایی که با استفاده از کلمه کلیدی var تعریف شده اند، در بالای کدها قرار می گیرند(hoisted to the top) و می توانند در هر زمانی مقدار دهی اولیه شوند. یعنی اینکه ما می توانیم از این متغیر، قبل از اینکه تعریف شود، استفاده کنیم:

مثال شماره 7

این مثال به درستی کار می کند:

carName = "Volvo";
var carName;
امتحان کنید

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

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

مثال شماره 8

carName = "Saab";
let carName = "Volvo"; 
امتحان کنید

 

  • بازدید: 285

نوشتن دیدگاه

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

ارسال