
بخش ۲: متغیرها - خانههای اطلاعات ما
۱. تعریف متغیر با var (روش قدیمی)
var name = "سامان";- محدوده: فقط داخل تابعی که تعریف شده قابل دسترسی است
- مشکل: اگر داخل
ifیاforتعریف شود، بیرون از آن هم قابل دسترسی است (ایجاد باگ میکند)
۲. تعریف متغیر با let (روش جدید و recommended)
let age = 25;- محدوده: فقط داخل بلاک
{}که تعریف شده - امنتر: جلوگیری از خطاهای ناخواسته
۳. تعریف متغیر با const (مقدار ثابت)
const PI = 3.14;- ویژگی: مقدار آن قابل تغییر نیست
- توجه: اگر
constیک شیء یا آرایه باشد، محتوای داخل آن قابل تغییر است، فقط نمیتوانیم متغیر جدیدی به آن نسبت دهیم
۴. Hoisting (بالا آوردن) - مفهوم مهم!
جاوااسکریپت قبل از اجرای کد، همه تعریفهای var را به بالا میبرد:
console.log(x); // undefined (خطا نمیدهد!)
var x = 5;
console.log(x); // 5اما با let و const اینطور نیست:
console.log(y); // ❌ خطا میدهد
let y = 10;۵. محدوده (Scope) - کجا قابل دیدن است؟
// مثال با var (خطرناک)
if (true) {
var color = "قرمز";
}
console.log(color); // "قرمز" (با وجودی که بیرون if است!)
// مثال با let (ایمن)
if (true) {
let size = "بزرگ";
}
console.log(size); // ❌ خطا: size is not definedسؤالات تمرینی بخش ۲:
۱. خروجی کد زیر چیست؟ چرا؟
console.log(number);
var number = 10;۲. کدام خطا میدهد؟ چرا؟
const colors = ["قرمز", "آبی"];
colors.push("سبز"); // خط اول
colors = ["زرد"]; // خط دوم۳. تفاوت let و const چیست؟ یک مثال برای هرکدام بزن.