دوره آموزش JavaScript

جاوااسکریپت یک زبان برنامه‌نویسی دینامیک و چندمنظوره است که در حوزه‌های مختلفی مانند مهندسی نرم‌افزار، برنامه‌نویسی مبتنی بر هوش مصنوعی، رباتیک و تولید اپلیکیشن‌های وب، دسکتاپ و موبایل قابل استفاده است و در سال‌های اخیر محبوبیت روزافزونی را تجربه کرده است. زبان جاوااسکریپت اصطلاحاً multi-paradigm است و از پارادایم‌ها یا سبک‌های برنامه‌نویسی مختلفی مانند برنامه‌نویسی شی‌گرا (OOP)، برنامه‌نویسی تابعی (Functional)، برنامه‌نویسی رویه‌ای (procedural) و برنامه‌نویسی رویداد محور (event-driven) پشتیبانی می‌کند.
جاوااسکریپت را بیشتر به عنوان یک زبان اسکریپت‌نویسی برای صفحات وب می‌شناسند و این تفکری است که از فلسفه‌ی ابتدایی معرفی این زبان نشأت می‌گیرد اما با این وجود، در سال‌های اخیر، این زبان دستخوش تغییرات زیادی شده و علاوه بر مرورگرهای وب، محیط‌های دیگری نیز قادر به میزبانی از این زبان هستند که مهمترین آنها Node.js است. در حقیقت، هدف و فلسفه‌ی ابتدایی جاوااسکریپت این بود که به عنوان یک زبان اسکریپت‌نویسی سمت کاربر برای ایجاد پویایی در صفحات وب به کار گرفته شود و از اینرو برای سال‌ها مرورگرهای وب تنها محیط‌های میزبان جاوااسکریپت بودند. اما این شرایط تغییر کرده و جاوااسکریپتِ امروزی در محیط‌های مختلفی قابل اجراست و برنامه‌نویسان و توسعه‌دهندگان با اهداف متفاوتی از این زبان استفاده می‌کنند.
با توجه به اینکه نسخه‌های مختلف مرورگرهای وب برای پلتفرم‌های دسکتاپ، تبلت و موبایل همگی به یک موتور جاوااسکریپت مجهز هستند، جاوااسکریپت بیش از هر زبان دیگری در طول تاریخ منتشر (deploy) شده است. از سال 2010 و با معرفی Node.js جاوااسکریپت به دنیای خارج از مرورگرها نیز راه یافت و به عنوان مثال، با نصب Node روی سرور، امکان برنامه‌نویسی وب در سمت سرور با استفاده از جاوااسکریپت وجود دارد. موفقیت خیره‌کننده‌ی Node باعث شد تا جاوااسکریپت به زبانی تبدیل شود که بیش از هر زبان دیگری توسط برنامه‌نویسان و توسعه‌دهندگان نرم‌افزار استفاده می‌شود.
اگر تجربه‌ای در برنامه‌نویسی دارید، بد نیست بدانید که جاوااسکریپت یک زبان سطح بالا، دینامیک و تفسیری (و مجهز به کامپایلر JIT) است که از سبک‌های برنامه‌نویسی مختلف به خوبی پشتیبانی می‌کند. این زبان، بسیاری از ویژگی‌های گرامری خود را از زبان‌های کم‌نام‌و‌نشان Scheme و Self اقتباس کرده است. برای نمونه، جاوااسکریپت به تقلید از زبان Scheme دارای توابع first-class است (هر زبان برنامه‌نویسی که توابع آن مانند متغیرها رفتار می‌کنند و برای مثال، می‌توان آنها را به عنوان آرگومان به توابع دیگر پاس کرد و یا آنها را به عنوان خروجی توابع تعیین کرد و یا آنها را به عنوان مقدار به متغیرها تخصیص داد، یک زبان دارای توابع first-class نامیده می‌شود) و یا مانند زبان Self یک زبان مبتنی بر پروتوتایپ (prototype-based) است که سبکی از برنامه‌نویسی شی‌گرا را ارائه می‌دهد که در آن کلاس‌ها به طور صریح تعریف نمی‌شوند و می‌توان یک شیء را بدون اینکه کلاسی برایش تعریف شده باشد، ایجاد کرد. بنابراین، مفاهیمی مانند وراثت (inheritance) در جاوااسکریپت به شکل متفاوتی نسبت به مدل سنتی مبتنی بر کلاس پیاده‌سازی می‌شوند. البته در نسخه‌های اخیر جاوااسکریپت، از برنامه‌نویسی مبتنی بر کلاس‌ها نیز پشتیبانی می‌شود و این یکی از دلایل اصلی رشد و گسترش میزان استفاده از این زبان است.
بخش زیادی از قدرت جاوااسکریپت، مرهون APIهای نوشته شده برای این زبان است که یا در محیط‌های میزبان مانند مرورگرها و Node پیاده‌سازی شده‌اند و بخشی از کتابخانه‌ی استاندارد جاوااسکریپت محسوب می‌شوند و یا توسط اشخاص و شرکت‌های ثالث ایجاد شده و به عنوان کتابخانه‌های خارجی (external) در دسترس هستند. علاوه بر اینها، فریمورک‌های متعددی وجود دارند که کار برنامه‌نویسان جاوااسکریپت را ساده‌تر می‌کنند. برای نمونه، فیسبوک یک فریمورک جاوااسکریپتی را برای استفاده‌ی داخلی خود طراحی کرد و بعداً این فریمورک را با نام React به صورت متن‌باز منتشر کرد. گوگل نیز با طی یک روند مشابه، فریمورک Angular را منتشر کرد.
گر به تازگی قدم در مسیر یادگیری جاوااسکریپت گذاشته‌اید و یا سابقه‌ی کار با این زبان را دارید، در هر دو حالت، این آموزش می‌تواند به شما کمک کند تا سطح بالایی از مهارت در کار با این زبان را بدست آورید و به معنای واقعی کلمه، در کار با این زبان به درجه‌ی استادی برسید. آنچه در این آموزش پوشش داده شده، هسته‌ی زبان برنامه‌نویسی جاوااسکریپت و چند API جاوااسکریپتی مهم و کاربردی است که توسط مرورگرهای وب پیاده‌سازی شده‌اند. هدف ما این است که آموزش جامع و دقیقی از جاوااسکریپت را به همراه یک معرفی کامل و عمیق از چند API مهم که در دسترس برنامه‌های جاوااسکریپت قرار دارند، ارائه دهیم. بنابراین، حجم بالای این آموزش، کاملاً‌ طبیعی و قابل انتظار است. با این حال، قطعاً در ازای زمانی که برای مطالعه‌ی دقیق این آموزش صرف می‌کنید، نتیجه‌ی خوبی دریافت خواهید کرد.

آنچه در دوره آموزش جاوااسکریپت خواهید آموخت:

فصل ۱: جاوااسکریپت چیست؟

در فصل اول در مورد تاریخچه‌ی پیدایش و تکامل جاوااسکریپت و وضعیت امروزی این زبان مطالبی بیان خواهد شد. در طول فصل از ارتباط بین جاوااسکریپت و ECMAScript خواهیم گفت و با ماهیت DOM یا Document Object Model و BOM یا Browser Object Model آشنا خواهیم شد.

فصل ۲: مبانی برنامه‌نویسی در جاوااسکریپت

در این فصل برخی از ساختارهای رایج در زبان‌های برنامه‌نویسی مانند سیستم نوع (type system) و ساختارهای شرط و تکرار را در جاوااسکریپت بررسی خواهیم کرد. به علاوه، با شباهت‌های جاوااسکریپت با سایر زبان‌های مشتق شده از زبان C آشنا شده و البته به تفاوت‌ها هم اشاره خواهیم کرد.

فصل ۳: توابع جاوااسکریپت

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

فصل ۴: اشیاء و نوع Object

در این فصل، اشیاء جاوااسکریپت و نوع object را معرفی می کنیم و با مفاهیم و موضوعات مهمی مانند پراپرتی‌های اشیاء، متدها و سازنده‌ها آشنا خواهیم شد. نوع symbol را هم در این فصل معرفی می‌کنیم و یک کاربرد این نوع را در تبدیل مقادیر object به primitive خواهیم دید.

فصل ۵: کالکشن‌ها در جاوااسکریپت

در این فصل به بررسی نوع‌های کالکشنی در زبان جاوااسکریپت می‌پردازیم و در این راستا با آرایه‌ها و نوع Array و نوع‌های Map و Set آشنا خواهیم شد و کاربردهای این نوع‌ها را در عمل خواهیم دید.

فصل ۶: نوع‌های ارجاعی پرکاربرد

این فصل به معرفی و بررسی کاربردهای چند نوع ارجاعی پرکاربرد احتصاص دارد. نوع Date برای کار با مقادیر تاریخ و زمان، نوع Regexp برای کار با عبارات باقاعده (regular expressions) و نوع Global در این فصل مورد بررسی قرار می‌گیرند.

فصل ۷: کار با Iterator و Generator

این فصل به بررسی دو مفهوم بسیار مهم در جاوااسکریپت یعنی iterator و generator و ارتباط آنها با ساختارهای برنامه‌نویسی موجود اختصاص دارد.

فصل ۸: کلاس‌ها و برنامه‌نویسی شی‌گرا در جاوااسکریپت

این فصل به بررسی مفاهیم شی‌گرایی و برنامه نویسی شی‌گرا در جاوااسکریپت اختصاص دارد. ابتدا با مکانیزم تعریف و نمونه‌سازی از کلاس‌ها آشنا می‌شویم و سپس، مفاهیم مهمی مانند وراثت (inheritance) و اعضای استاتیک کلاس‌ها را مورد بررسی قرار می‌دهیم.

فصل ۹: کار با Proxy و Reflect

این فصل به معرفی دو مفهوم مرتبط با یکدیگر یعنی Proxy و Reflect API اختصاص دارد.

فصل ۱۰: مفاهیم پیشرفته‌تر در مورد توابع

در این فصل، یک مرور مجدد بر توابع جاوااسکریپت خواهیم داشت و مفاهیم و موضوعات پیشرفته‌تری را در ارتباط با توابع بیان می‌کنیم. خواهیم دید که چطور می‌توانیم توابع را هم به عنوان مقدار و هم به عنوان شیء در نظر بگیریم و مفهوم کلیدی Closure را هم معرفی می‌کنیم.

فصل ۱۱: کاربرد Promise و الگوی async/await

در این فصل در مورد دو ساختار مربوط به برنامه‌نویسی غیرهمزمان در جاوااسکریپت یعنی Promise و async/await صحبت می‌شود.

فصل ۱۲: BOM چیست؟

این فصل به بررسی BOM یا Browser Object Model و اشیائی مثل window، document، location، navigation و screen اختصاص دارد.

فصل ۱۳: DOM چیست؟

در این فصل در مورد DOM یا Document Object Model صحبت می‌کنیم و خواهیم دید که چطور می‌توانیم محتوا و استایل صفحات وب را به صورت دینامیک و در واکنش به رویدادهای مختلف، ویرایش کنیم.

فصل ۱۴: اکستنشن‌های DOM

در این فصل خواهیم دید که چطور سایر APIها و خود مرورگرها قابلیت‌های DOM را کسترش می‌دهند. در این راستا با چند API دیگر مانند Selectors و Element Traversal نیز آشنا خواهیم شد.

فصل ۱۵: رویدادها

در این فصل در مورد رویدادها (events) و ماهیت و عملکرد آنها در جاوااسکریپت صحبت خواهیم کرد و خواهیم دید که چطور DOM می‌تواند نحوه‌ی عملکرد رویدادها را تعیین کند.

فصل ۱۶: انیمیشن و گرافیک با Canvas

در این فصل با بررسی دو API گرافیکی با نام‌های Canvas و WebGL با نحوه‌ی ساخت گرافیک‌ها، انیمیشن‌ها و بازی‌های دو و سه‌بعدی توسط جاوااسکریپت آشنا می‌شویم.

فصل ۱۷: اسکریپت‌نویسی برای فرم‌های وب

در این فصل خواهیم دید که چطور می‌توانیم با استفاده از جاوااسکریپت به بهبود فرم‌های وب کمک کنیم و به طور خاص در مورد اعتبارسنجی داده‌های فرم نیز مطالبی را بیان خواهیم کرد.

فصل ۱۸: APIهای جاوااسکریپت

این فصل به معرفی و بررسی چند API جاوااسکریپتی پر کاربرد مانند Atomics، Encoding، File، Notifications و Timing اختصاص دارد.

فصل ۱۹: مدیریت خطا و دیباگ کدها

در این فصل خواهیم دید که مرورگرها چطور خطاهای جاوااسکریپت را مدیریت می‌کنند و چند روش برای مدیریت خطاها نیز ارائه می‌شود. با ابزارهای debug در مرورگرهای مختلف نیز آشنا خواهیم شد.

فصل ۲۰: فرمت JSON

در این فصل با فرمت داده‌ای JSON آشنا می‌شویم. خواهیم دید که مرورگرها چطور داده‌های JSON را تفسیر می‌کنند و ملاحظات امنیتی مربوط به داده‌های JSON را نیز ذکر می‌کنیم.

فصل ۲۱: درخواست‌های شبکه و منابع Remote

در این فصل با روش های درخواست داده و فایل‌های مختلف توسط مرورگرها با استفاده از Fetch API آشنا می‌شویم.

فصل ۲۲: ذخیره‌سازی داده‌ها در سمت کاربر

در این فصل خواهیم دید که چطور می‌توانیم آفلاین بودن اپلیکیشن را تشخیص دهیم و از تکنیک‌های مختلف برای ذخیره کردن داده‌ها در ماشین کاربر استفاده کنیم. بحث را با کوکی‌ها شروع کرده و سپس، با تکنیک‌های مدرن‌تر Web Storage و IndexedDB آشنا می‌شویم.

فصل ۲۳: کار با ماژول‌های جاوااسکریپت

در این فصل با ماژول‌های جاوااسکریپت و تکنیک‌های نوشتن اپ‌های ماژولار آشنا می‌شویم.

فصل ۲۴: کار با Worker

در این فصل با انواع worker آشنا شده و عملکرد آنها را هم در سطح مرورگر و هم در سطح سیستم‌عامل بررسی می‌کنیم. به علاوه، استراتژی‌هایی را برای بهترین استفاده از انواع worker ارائه می‌دهیم.

فصل ۲۵: توصیه‌های کاربردی

در فصل پایانی رویکردهایی را برای کار با جاوااسکریپت در سطح Enterprise ارائه می‌دهیم. تکنیک‌هایی را در ارتباط با کدنویسی و فرمت‌دهی معرفی می‌کنیم که کار نگهداری پروژه‌ها را ساده‌تر می‌کند. همچنین، در ارتباط با کارایی (performance) اپ‌ها صحبت کرده و روش‌هایی را برای ارتقای سرعت اجرای اپ‌های جاوااسکریپت معرفی می‌کنیم. در نهایت، در مورد مسائل مربوط به استقرار (deployment) اپ‌ها صحبتمی کنیم و خواهیم دید که چطور می‌توانیم یک build process ایجاد کنیم.

ثبت نام در دوره آموزش جاوااسکریپت

دسترسی رایگان: ۴ فصل

ثبت‌نام در زمان برگزاری: ۲،۰۰۰،۰۰۰ ریال

ثبت‌نام بعد از تکمیل دوره: ۵،۰۰۰،۰۰۰ ریال