~3 دقیقه مطالعه • بروزرسانی ۲۲ مهر ۱۴۰۴
مقدمه
بهترین راه برای یادگیری جاوااسکریپت، کدنویسی عملی است. اما برای این کار باید ابتدا درک درستی از ساختار زبان داشته باشید. این مقاله، مروری کلی بر مفاهیم کلیدی 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 کتاب بررسی میشود.
جمعبندی
در این مرور، با مفاهیم پایهای جاوااسکریپت آشنا شدیم: رفتار فایلها، انواع مقدارها، و نحوهٔ تشخیص نوع آنها. این مفاهیم در فصلهای بعدی گسترش مییابند. فعلاً با تمرین و نوشتن کد، پایهٔ یادگیری خود را تقویت کنید.
نوشته و پژوهش شده توسط دکتر شاهین صیامی