متغیرها در جاوااسکریپت (Variables in JavaScript)

متغیرها در جاوااسکریپت (Variables in JavaScript)

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

1. var:

  • تعریف: var اولین کلمه کلیدی برای تعریف متغیر در جاوااسکریپت است.
  • ویژگی‌ها:
    • var به‌طور معمول در سطح تابع (function scope) یا در سطح جهانی (global scope) تعریف می‌شود.
    • اگر متغیر با var در داخل یک بلوک (مانند if یا for) تعریف شود، هنوز به کل تابع یا اسکوپ جهانی تعلق دارد.
    • اگر متغیری دوباره با var در همان اسکوپ تعریف شود، مقدار قبلی آن بازنویسی خواهد شد.
  • مثال:
				
					consovar x = 10;
if (true) {
    var x = 20;  // این تغییر، مقدار x در خارج از بلوک را نیز تغییر می‌دهد.
}
console.log(x);  // 20
le.log( 'Code is Poetry' );
				
			

2. let:

  • تعریف: let از ES6 به بعد معرفی شد و استفاده از آن به‌طور گسترده‌تر پیشنهاد می‌شود.
  • ویژگی‌ها:
    • let در سطح بلوک (block scope) تعریف می‌شود. یعنی متغیرهای تعریف‌شده با let تنها در داخل بلوک (مانند {}) قابل دسترسی هستند.
    • این متغیرها می‌توانند مجدداً در همان بلوک تغییر یابند.
    • اگر از let استفاده کنید، خطای ReferenceError در صورت تلاش برای تعریف دوباره آن در همان بلوک رخ می‌دهد.
  • مثال:
				
					let y = 10;
if (true) {
    let y = 20;  // این y فقط در داخل بلوک if اثر دارد.
    console.log(y);  // 20
}
console.log(y);  // 10

				
			

3. const:

  • تعریف: const نیز از ES6 معرفی شد و برای تعریف متغیرهایی استفاده می‌شود که قرار است مقدارشان تغییر نکند.
  • ویژگی‌ها:
    • const نیز مانند let در سطح بلوک (block scope) تعریف می‌شود.
    • متغیرهای تعریف‌شده با const باید هنگام تعریف مقداردهی شوند و پس از آن نمی‌توانند تغییر کنند.
    • اگر یک شیء یا آرایه با const تعریف شود، می‌توان به مقادیر درونی آن شیء یا آرایه دسترسی یا تغییر داد، اما خود مرجع به شیء یا آرایه نمی‌تواند تغییر کند.
  • مثال:
				
					const z = 10;
// z = 20;  // خطا: تغییر مقدار متغیر const مجاز نیست.
console.log(z);  // 10

				
			

نکات مهم:

  • hoisting: متغیرهایی که با var تعریف شده‌اند به بالای اسکوپ منتقل می‌شوند (hoisted) اما با let و const این اتفاق نمی‌افتد. به عبارت دیگر، متغیرهایی که با let و const تعریف می‌شوند، قبل از خطی که به آن‌ها مقدار داده‌اید، قابل دسترسی نیستند.
  • بازنویسی متغیرها: let و const به شما اجازه نمی‌دهند که متغیر را دوباره تعریف کنید در حالی که var این امکان را فراهم می‌کند.

مثال مقایسه‌ای:

				
					// var
var a = 5;
if (true) {
    var a = 10;  // متغیر a در سطح تابع یا جهانی بازنویسی می‌شود.
}
console.log(a);  // 10

// let
let b = 5;
if (true) {
    let b = 10;  // فقط در داخل بلوک if معتبر است.
    console.log(b);  // 10
}
console.log(b);  // 5

// const
const c = 5;
if (true) {
    // c = 10;  // خطا: تغییر مقدار متغیر const مجاز نیست.
}
console.log(c);  // 5

				
			

انتخاب بین var، let و const:

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

امیدوارم این توضیحات کمک‌کننده باشد! اگر سوال بیشتری دارید، بپرسید.

سورس ها به پایان رسید.
0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
error: شماره تماس : 09193156178