کلمه ی کلیدی let در جاوااسکریپت
در جاوااسکریپت (JavaScript)، let
برای تعریف متغیر (Variable) با Block Scope استفاده می شود. این کلمه کلیدی از ES6 معرفی شد و استفاده از آن باعث جلوگیری از Redeclare و دسترسی ناخواسته متغیرها می شود.
Block Scope
متغیرهای تعریف شده با let
تنها در بلوک خود قابل دسترسی هستند.
مثال
{
let x = 2;
}
// x نمی تواند اینجا استفاده شود
Global Scope با var
متغیرهای تعریف شده با var
همیشه دارای Global Scope هستند و بلوک آنها تاثیری ندارد.
{
var x = 2;
}
// x می تواند اینجا استفاده شود
عدم Redeclare با let
متغیرهای تعریف شده با let
نمی توانند دوباره در همان بلوک تعریف شوند.
let x = "John Doe";
let x = 0; // خطا
Redeclaring در بلوک های مختلف
با let
می توان متغیر را در بلوک های مختلف دوباره تعریف کرد بدون تاثیر روی بلوک اصلی.
let x = 2;
{
let x = 3; // مجاز
}
{
let x = 4; // مجاز
}
Hoisting با let و var
var
قبل از تعریف قابل استفاده است، اما let
باعث ReferenceError
می شود.
carName = "Volvo";
var carName; // صحیح
carName = "Saab";
let carName = "Volvo"; // خطا
تفاوت var، let و const
Scope | Redeclare | Reassign | Hoisted | Binds this | |
var | خیر | بله | بله | بله | بله |
let | بله | خیر | بله | خیر | خیر |
const | بله | خیر | خیر | خیر | خیر |
برای اطلاعات بیشتر به Hoisting مراجعه کنید.