Logo

Var و Let در جاوااسکریپت

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

Var

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

var x;

var x = 10

Let

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

let y;

let y = 5

تفاوت var و let چیست ؟

در جاوااسکریپت، `let` و `var` هر دو برای تعریف متغیرها استفاده می‌شوند، اما تفاوت‌های مهمی بین آن‌ها وجود دارد. متغیرهای تعریف شده با `var` دارای محدوده تابعی (Function Scope) هستند، به این معنا که در کل تابعی که در آن تعریف شده‌اند قابل دسترسی هستند. در مقابل، متغیرهای تعریف شده با `let` دارای محدوده بلوکی (Block Scope) هستند، یعنی فقط در داخل بلوکی که تعریف شده‌اند قابل دسترسی هستند. یکی دیگر از تفاوت‌های مهم بین `let` و `var` در رفتار آن‌ها در برابر Hoisting است. متغیرهای تعریف شده با `var` به بالای محدوده خود منتقل می‌شوند و می‌توان قبل از تعریف آن‌ها از آن‌ها استفاده کرد، اما متغیرهای تعریف شده با `let` این رفتار را ندارند و اگر قبل از تعریف از آن‌ها استفاده شود، خطا رخ می‌دهد. همچنین، متغیرهای تعریف شده با `var` می‌توانند دوباره تعریف شوند، اما متغیرهای تعریف شده با `let` نمی‌توانند دوباره تعریف شوند و اگر تلاش کنید یک متغیر `let` را دوباره تعریف کنید، با خطا مواجه خواهید شد. این ویژگی‌ها باعث می‌شوند که استفاده از `let` در بسیاری از موارد ایمن‌تر و قابل پیش‌بینی‌تر باشد.

png