
زبان پویای توسعه وب و برنامههای کاربردی
فصل اول کتاب You Don’t Know JS Yet با بررسی فلسفی و تاریخی هویت جاوااسکریپت آغاز میشود. این فصل با زدودن افسانهها و تصورات اشتباه، پایهای برای درک عمیقتر زبان فراهم میکند. مقالهٔ حاضر، نکات کلیدی این فصل را مرور میکند: از منشأ نام «جاوااسکریپت» تا ارکان ساختاری زبان و ذهنیتی که برای شناخت واقعی JS لازم است.
این مقاله، برگرفته از فصل دوم کتاب You Don’t Know JS Yet: Get Started، مفاهیم پایهای جاوااسکریپت را برای برنامهنویسان تازهکار معرفی میکند. از نحوهٔ رفتار فایلها گرفته تا انواع مقادیر و نحوهٔ تشخیص نوع آنها، این مرور کلی، پایهای محکم برای یادگیری عمیقتر فراهم میسازد.
در جاوااسکریپت، متغیرها ظرفهایی برای نگهداری مقدار هستند و باید قبل از استفاده تعریف شوند. این مقاله به بررسی سه روش اصلی تعریف متغیرها — var، let و const — و تفاوتهای آنها در محدودهٔ دسترسی، قابلیت تغییر، و کاربردهای مناسب میپردازد. همچنین به نحوهٔ تعریف متغیر در توابع و بلوکهای catch اشاره میشود.
توابع در جاوااسکریپت نقش محوری در ساختار برنامهها دارند. این مقاله به بررسی تعریف تابع بهصورت declaration و expression، نحوهٔ دریافت پارامتر، بازگرداندن مقدار، و استفاده از توابع بهعنوان مقادیر قابلانتقال میپردازد. همچنین به نحوهٔ تعریف توابع در اشیاء و تفاوت آنها با کلاسها اشاره میشود.
مقایسهٔ مقادیر در جاوااسکریپت یکی از پایههای تصمیمگیری در برنامههاست. این مقاله به بررسی تفاوت بین مقایسهٔ دقیق (===)، مقایسهٔ ساختاری، و مقایسهٔ هویتی میپردازد. همچنین به موارد خاص مانند NaN و -0، و نحوهٔ مقایسهٔ اشیاء و توابع اشاره میشود. درک این تفاوتها برای نوشتن کدهای قابلاعتماد ضروری است.
تبدیل نوع (coercion) یکی از ارکان اصلی زبان جاوااسکریپت است و در مقایسهها نقش مهمی دارد. این مقاله به بررسی رفتار عملگر == بهعنوان «مساوی تبدیلپذیر»، تفاوت آن با ===، و نحوهٔ عملکرد عملگرهای رابطهای مانند < و > در مواجهه با نوعهای متفاوت میپردازد. همچنین به موارد خاصی مانند مقایسهٔ رشتهها و عددها اشاره میشود.
در جاوااسکریپت، دو الگوی اصلی برای سازماندهی داده و رفتار وجود دارد: کلاسها و ماژولها. این مقاله به بررسی ساختار کلاسها، نحوهٔ تعریف و نمونهسازی آنها، و مفهوم وراثت و چندریختی (polymorphism) در طراحی شیگرا میپردازد. درک این الگوها برای نوشتن کدهای منظم، قابلنگهداری و توسعهپذیر ضروری است.
ماژولها در جاوااسکریپت مانند کلاسها برای گروهبندی داده و رفتار در واحدهای منطقی طراحی شدهاند. این مقاله به بررسی الگوی کلاسیک ماژولها با توابع کارخانهای، تفاوت آن با کلاسها، و معرفی ES Modules در ES6 میپردازد. همچنین به نحوهٔ استفاده، صادرات، و وارد کردن ماژولها و تفاوت در نمونهسازی اشاره میشو
تکرار در جاوااسکریپت – الگوی Iterator، ساختارهای قابلتکرار، و مصرف استاندارد دادهها
Closure و this دو مفهوم بنیادی و گاه گیجکننده در جاوااسکریپت هستند. این مقاله به تعریف دقیق closure بهعنوان حافظهٔ متغیرهای بیرونی در توابع، و بررسی رفتار پویا و وابسته به نحوهٔ فراخوانی در this میپردازد. با مثالهای عملی، تفاوت بین دامنهٔ ثابت و زمینهٔ اجرایی پویا روشن میشود.
پروتوتایپها در جاوااسکریپت مکانیزمی برای ارجاع ویژگیها بین اشیاء هستند. این مقاله به تعریف زنجیرهٔ پروتوتایپ، نحوهٔ تفویض ویژگیها، تفاوت بین دسترسی و انتساب، و نقش کلیدی this در فراخوانی متدهای ارجاعشده میپردازد. درک این مفاهیم برای طراحی شیگرا و رفتارهای پویا در JS ضروری است.
در جاوااسکریپت – تفاوت مقدار و مرجع، و فرمهای متنوع تعریف تابع