مروری بر جاوااسکریپت – راهنمای مفاهیم پایه برای مبتدیان

این مقاله، برگرفته از فصل دوم کتاب You Don’t Know JS Yet: Get Started، مفاهیم پایه‌ای جاوااسکریپت را برای برنامه‌نویسان تازه‌کار معرفی می‌کند. از نحوهٔ رفتار فایل‌ها گرفته تا انواع مقادیر و نحوهٔ تشخیص نوع آن‌ها، این مرور کلی، پایه‌ای محکم برای یادگیری عمیق‌تر فراهم می‌سازد.

جاوااسکریپتمقدارماژولtypeof

~3 min read · Updated Oct 14, 2025

مقدمه


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


هر فایل یک برنامه است


در جاوااسکریپت، هر فایل مستقل (با پسوند .js) به‌عنوان یک برنامهٔ جداگانه در نظر گرفته می‌شود. اگر یک فایل در مرحلهٔ تجزیه یا اجرا دچار خطا شود، لزوماً مانع اجرای سایر فایل‌ها نمی‌شود. اما اگر برنامه به فایل‌های متعدد وابسته باشد، ممکن است عملکرد ناقصی داشته باشد.


این فایل‌ها از طریق دامنهٔ سراسری (global scope) با یکدیگر تعامل دارند. از ES6 به بعد، فرمت ماژول نیز معرفی شده که با import یا <script type="module"> بارگذاری می‌شود. ماژول‌ها نیز فایل‌محورند و به‌صورت جداگانه اجرا می‌شوند اما می‌توانند در زمان اجرا با هم تعامل داشته باشند.


نکته: ابزارهایی مانند Webpack معمولاً چند فایل را در یک فایل ترکیب می‌کنند که در این صورت، JS آن را به‌عنوان یک برنامهٔ واحد در نظر می‌گیرد.


مقدارها در جاوااسکریپت


مقدارها اجزای اصلی برنامه‌های JS هستند. آن‌ها یا ابتدایی (primitive) هستند یا شیء (object).


مقادیر ابتدایی


  • رشته‌ها (Strings): دنباله‌ای از کاراکترها. می‌توان از " یا ' استفاده کرد. برای درج متغیر در متن از ` استفاده می‌شود:
    let firstName = "Kyle";
    console.log(`My name is ${firstName}`);

  • اعداد (Numbers): برای محاسبات یا اندیس‌دهی آرایه‌ها. بهتر است از Math.PI به‌جای مقادیر ثابت استفاده شود. برای اعداد بسیار بزرگ از bigint استفاده کنید.

  • بولی‌ها (Booleans): مقادیر true یا false برای منطق برنامه:
    while (false) {
      console.log("این کد اجرا نمی‌شود.");
    }

  • null و undefined: هر دو نشان‌دهندهٔ نبود مقدار هستند. معمولاً undefined به‌عنوان مقدار پیش‌فرض توصیه می‌شود:
    while (value != undefined) {
      console.log("هنوز مقداری داریم!");
    }

  • Symbols: کلیدهای یکتای مخفی برای اشیاء، بیشتر در کتابخانه‌ها استفاده می‌شوند:
    hitchhikersGuide[Symbol("meaning of life")]; // 42


آرایه‌ها و اشیاء


  • آرایه‌ها: لیست‌های مرتب با اندیس عددی:
    let names = ["Frank", "Kyle", "Peter", "Susan"];
    console.log(names.length); // 4
    console.log(names[1]); // Kyle

  • اشیاء: مجموعه‌های نامرتب با کلیدهای رشته‌ای:
    let name = {
      first: "Kyle",
      last: "Simpson",
      age: 39,
      specialties: ["JS", "تنیس روی میز"]
    };
    console.log(`My name is ${name.first}`);


نکته: توابع و آرایه‌ها نیز نوعی شیء هستند که در ادامه بررسی می‌شوند.


تشخیص نوع مقدار


برای بررسی نوع مقدار از عملگر typeof استفاده می‌شود:


typeof 42; // "number"
typeof "abc"; // "string"
typeof true; // "boolean"
typeof undefined; // "undefined"
typeof null; // "object" -- باگ قدیمی!
typeof { a: 1 }; // "object"
typeof [1, 2, 3]; // "object"
typeof function hello() {}; // "function"

هشدار: typeof null به‌اشتباه "object" برمی‌گرداند. همچنین آرایه‌ها نوع خاصی ندارند و "object" بازمی‌گردانند.


تبدیل نوع (coercion) و تفاوت مقدار و مرجع در ضمیمه A کتاب بررسی می‌شود.


جمع‌بندی


در این مرور، با مفاهیم پایه‌ای جاوااسکریپت آشنا شدیم: رفتار فایل‌ها، انواع مقدارها، و نحوهٔ تشخیص نوع آن‌ها. این مفاهیم در فصل‌های بعدی گسترش می‌یابند. فعلاً با تمرین و نوشتن کد، پایهٔ یادگیری خود را تقویت کنید.


Written & researched by Dr. Shahin Siami

Related Articles

نحوهٔ میزبانی مستقل اپلیکیشن Next.js – پیکربندی، کشینگ، و استراتژی‌های استقرار

nextjs-self-hosting-deployment-cache-isr-proxy-env

Continue

مقایسه‌های شرطی تبدیل‌پذیر و کلاس‌های پروتوتایپی در جاوااسکریپت – درک دقیق رفتار شرطی و ساختارهای ارث‌بری

این مقاله دو موضوع مهم از ضمیمهٔ A کتاب YDKJSY را بررسی می‌کند: نحوهٔ تبدیل نوع در عبارات شرطی مانند if و while، و الگوی کلاس‌های پروتوتایپی به‌عنوان پیش‌زمینه‌ای برای کلاس‌های ES6. با مثال‌های عملی، تفاوت بین مقایسه‌های دقیق و تبدیل‌پذیر، و نحوهٔ تفویض رفتار از طریق زنجیرهٔ پروتوتایپ روشن می‌شود.

Continue

در جاوااسکریپت – تفاوت مقدار و مرجع، و فرم‌های متنوع تعریف تابع

در جاوااسکریپت – تفاوت مقدار و مرجع، و فرم‌های متنوع تعریف تابع

Continue

پروتوتایپ‌ها در جاوااسکریپت – زنجیرهٔ ارجاع، تفویض ویژگی‌ها، و نقش this در رفتار پویا

پروتوتایپ‌ها در جاوااسکریپت مکانیزمی برای ارجاع ویژگی‌ها بین اشیاء هستند. این مقاله به تعریف زنجیرهٔ پروتوتایپ، نحوهٔ تفویض ویژگی‌ها، تفاوت بین دسترسی و انتساب، و نقش کلیدی this در فراخوانی متدهای ارجاع‌شده می‌پردازد. درک این مفاهیم برای طراحی شی‌گرا و رفتارهای پویا در JS ضروری است.

Continue

Closure و this در جاوااسکریپت – حافظهٔ دامنه و زمینهٔ اجرایی در توابع

Closure و this دو مفهوم بنیادی و گاه گیج‌کننده در جاوااسکریپت هستند. این مقاله به تعریف دقیق closure به‌عنوان حافظهٔ متغیرهای بیرونی در توابع، و بررسی رفتار پویا و وابسته به نحوهٔ فراخوانی در this می‌پردازد. با مثال‌های عملی، تفاوت بین دامنهٔ ثابت و زمینهٔ اجرایی پویا روشن می‌شود.

Continue

تکرار در جاوااسکریپت – الگوی Iterator، ساختارهای قابل‌تکرار، و مصرف استاندارد داده‌ها

تکرار در جاوااسکریپت – الگوی Iterator، ساختارهای قابل‌تکرار، و مصرف استاندارد داده‌ها

Continue