تفاوت let و const و var در جاوااسکریپت
در جاوااسکریپت سه کلیدواژه برای تعریف متغیر داریم. تفاوت اصلی آنها در محدودهی دسترسی، امکان تعریف مجدد و تغییر مقدار است.
var: روش قدیمی
var به محدودهی تابع وابسته است، نه بلاک. یعنی متغیری که داخل if یا for تعریف شود، بیرون از آن هم در دسترس است. همچنین میتوان آن را دوباره تعریف کرد.
if (true) {
var a = 1;
}
console.log(a); // 1
let: متغیر قابل تغییر با محدودهی بلاک
متغیر let فقط داخل بلاکی که تعریف شده معتبر است. مقدارش را میتوان عوض کرد، ولی در همان محدوده نمیتوان آن را دوباره تعریف کرد.
if (true) {
let b = 2;
}
console.log(b); // ReferenceError
const: مقدار ثابت با محدودهی بلاک
const هم محدودهی بلاک دارد و باید هنگام تعریف مقدار بگیرد. دوبارهانتساب ندارد، اما محتوای آرایه یا آبجکت داخلش قابل تغییر است.
const list = [1, 2];
list.push(3); // مجاز
list = []; // TypeError
Hoisting
هر سه کلیدواژه hoist میشوند، اما var با مقدار undefined قابل خواندن است، در حالی که خواندن let و const پیش از تعریف خطا میدهد.
کدام را استفاده کنیم؟
- بهطور پیشفرض از
constاستفاده کنید. - اگر مقدار باید عوض شود،
letبنویسید. - در کد جدید معمولاً به
varنیازی نیست.
همین حالا با دانیال کد امتحان کنید
ورود به چتبات
ورود به چتبات