مبانی جاوا اسکریپت
ساختار دستوری، متغیرها (var، let، const)، کامنتها، قالبهای متنی و تخریب ساختار در جاوا اسکریپت
ساختار دستوری (Syntax)
جاوا اسکریپت مانند بیشتر زبانهای خانواده C از ساختار دستوری مشابه استفاده میکند:
- دستورها (Statements) معمولاً با سیمیکالن (;) تمام میشوند (البته اختیاری است)
- بلاکهای کد با آکولاد {} محصور میشوند
- جاوا اسکریپت حساس به حروف بزرگ و کوچک است (Case-Sensitive) —
nameباNameمتفاوت است - فاصلهها و خطوط اضافی تأثیری در اجرا ندارند
دستورها و عبارتها
دستور (Statement) یک فرمان کامل است که کاری انجام میدهد. عبارت (Expression) تکهای از کد است که یک مقدار تولید میکند:
// دستور (Statement):
let x = 5;
// عبارت (Expression):
x + 10; // مقدار 15 را تولید میکند
کامنتها (Comments)
کامنتها توضیحاتی هستند که اجرا نمیشوند و برای خوانایی کد نوشته میشوند:
// این یک کامنت تکخطی است
/*
این یک کامنت
چندخطی است
*/
/**
* کامنت مستندسازی (JSDoc)
* @param {number} a - عدد اول
*/
متغیرها (Variables)
متغیر مانند یک جعبه برچسبدار است که مقداری را در خود نگه میدارد. در جاوا اسکریپت سه کلمه کلیدی برای تعریف متغیر داریم:
var — روش قدیمی
- محدوده تابعی (Function Scope) دارد
- قابل تعریف مجدد است
- Hoisting با مقدار undefined دارد
- از ES6 به بعد توصیه نمیشود
let — روش مدرن
- محدوده بلوکی (Block Scope) دارد
- قابل تغییر (Mutable) است اما قابل تعریف مجدد در همان محدوده نیست
const — ثابتها
- محدوده بلوکی دارد
- قابل تغییر نیست (Immutable Binding)
- حتماً هنگام تعریف مقداردهی شود
- توصیه: همیشه از const شروع کنید، اگر نیاز به تغییر داشتید از let استفاده کنید
| ویژگی | var | let | const |
|---|---|---|---|
| محدوده | Function | Block | Block |
| تعریف مجدد | بله | خیر | خیر |
| تغییر مقدار | بله | بله | خیر |
| Hoisting | undefined | TDZ | TDZ |
شناسهها و کلمات کلیدی
نام متغیر (Identifier) باید قوانین زیر را رعایت کند:
- شروع با حرف، زیرخط (_) یا علامت دلار ($)
- بقیه کاراکترها میتوانند حرف، عدد، _ یا $ باشند
- نمیتوان از کلمات رزرو شده استفاده کرد (let، class، return و...)
روشهای نامگذاری:
- camelCase: نامگذاری متغیرها و توابع —
userName - PascalCase: کلاسها —
UserProfile - UPPER_SNAKE_CASE: ثابتها —
MAX_COUNT
قالبهای متنی (Template Literals)
از ES6 به بعد میتوان رشتهها را با بکتیک (`) تعریف کرد که امکانات بیشتری میدهد:
- درج متغیر: با سینتکس
${expression} - رشته چندخطی: بدون نیاز به n+
- درج عبارت: هر عبارت جاوا اسکریپتی مجاز است
تخریب ساختار (Destructuring)
Destructuring روشی برای استخراج مقادیر از آرایهها یا اشیا و قرار دادن آنها در متغیرهای جداگانه است:
// Destructuring آرایه:
const colors = ["قرمز", "سبز", "آبی"];
const [first, second, third] = colors;
// Destructuring آبجکت:
const user = { name: "علی", age: 25 };
const { name, age } = user;
// مقدار پیشفرض:
const { city = "تهران" } = user;
// تغییر نام:
const { name: userName } = user;
عملگر گسترش و باقیمانده (Spread و Rest)
عملگر ... بسته به محل استفاده دو نقش دارد:
- Spread (گسترش): وقتی در موقعیت مقدار استفاده شود، عناصر را «پخش» میکند
- Rest (باقیمانده): وقتی در تعریف پارامتر یا destructuring استفاده شود، عناصر باقیمانده را «جمع» میکند
جمعبندی
- جاوا اسکریپت حساس به حروف بزرگ و کوچک است
- از let و const به جای var استفاده کنید
- Template Literal رشتهها را خواناتر میکند
- Destructuring و Spread کدها را کوتاهتر و تمیزتر میکنند
این مبحث بخشی از دوره آموزش کامل جاوا اسکریپت است.