سرفصل های دوره
فصل اول: معرفی دوره
جاوا اسکریپت چی هست اصلا؟
چکار کنم تا جاوااسکریپت رو با این دوره بهتر یاد بگیرم؟
نحوه دسترسی به فایل ها و تمرینات دوره
نحوه ارسال تمرین ها و دریافت امتیاز
فصل دوم: مبانی کار با جاوااسکریپت
وارد کردن جاوااسکریپت در صفحه وب
کار با کنسول مرورگر در جاوااسکریپت
متغیرها (Variables)
اصول نامگذاری و کار با متغیرها
اپراتورها (operators)
دیتاتایپ ها (data types) در جاوااسکریپت
کارها با متغیرهای string (متنی)
توابع (functions)
کار با فانکشن ها در جاوااسکریپت
متغیرهای local و global
شروع پروژه ساخت ماشین حساب
عمل جمع در ماشین حساب
تبدیل data Type ها
اجرای بخش توضیح عملیات در ماشین حساب
راه اندازی همه دکمه های ماشین حساب
ریفکتور (refactor) کردن کدها
سایر دیتاتایپ ها (dataTypes)
کار با آرایه ها (arrays)
استفاده از آرایه ها در ماشین حساب
استفاده از آبجکت ها (Object) در ماشین حساب
Reusable Function
معرفی undefined, null and NaN
توصیه هایی برای یادگیری بهتر جاوااسکریپت
فصل سوم: ساختارهای کنترلی، شرط، حلقه و …
معرفی فصل
عبارات شرطی و اپراتورهای boolean
if else statement
اپراتورهای منطقی AND و OR
تقدم و تاخر (اولویت بندی) اپراتورها
عبارات truthy و falsy
معرفی مینی پروژه - بازی سفینه فضایی
راه اندازی دکمه attack (ضربه)
ضربه قدرتی، شرایط اتمام بازی و refactoring
راه اندازی دکمه افزایش سلامتی
عملکرد جان اضافه
انتخاب سلامتی سفینه ها توسط کاربر
ساخت لاگ از عملکرد بازی
ternary operator
switch-case
حلقه ها در جاوااسکریپت
for loop
for-of loop
for-in loop
حلقه های while و do while
کنترل حلقه ها با break و continue
فصل چهارم: برخی مفاهیم جاوااسکریپت
معرفی فصل
جاوااسکریپت چطور کار میکنه؟
محیط اجرای جاوااسکریپت (Javascript Host Environment)
ِDynamic و Weakly Typed بودن جاوااسکریپت یعنی چه؟
EcmaScript و نسخه های متفاوت جاوااسکریپت (ES5 و ES6)
strict mode
Primitive Values and Reference Values
نقاط تاریک Primitive و Reference
مدیریت خطاها (Error Handling) در جاوااسکریپت
ساخت ارورهای دلخواه با throw
فصل پنجم: فانکشن ها (functions)
معرفی فصل
ارتباط بین function ها و object ها
ذخیره کردن تابع در متغیر
hoisting
تابع بدون نام (anonymous function)
arrow function
ساخت بازی حدس عدد
پیاده سازی حدس عدد توسط کاربر
refactor کردن کدها
مقادیر پیش فرض در توابع (default parameters)
Rest Operator
callback functions
معرفی متد bind
استفاده از متد bind روی پروژه ماشین حساب
توابع تودرتو (Nested functions)
فصل ششم: کار با DOM
DOM چی هست اصلا؟
DOM چطور کار میکنه؟
کوئری کردن (query) المان ها
اعمال تغییرات در DOM
live sync و non-live sync
اعمال تغییرات روی چند المان
پیمایش(traverse) در DOM
ادامه ِDOM traverse
استایل دادن به المان ها در DOM
ساخت المان جدید
clone و حذف کردن المان های DOM
مینی پروژه Todo List
نمایش/مخفی کردن modal
اضافه کردن task جدید
وارد کردن task جدید در صفحه
نشانه گذاری اتمام task ها
حذف task
جمع بندی فصل
فصل هفتم: در اعماق آرایه ها (arrays)
معرفی فصل
راه های متفاوت ساخت آرایه
متدهای کاربردی آرایه ها
متدهای splice و slice
ترکیب کردن دو آرایه با concat
پیداکردن index یک المان با indexOf
متدهای find و findIndex
متدهای foreach و map
مرتب سازی و فیلترکردن آرایه ها با متدهای sort و filter
متد reduce
متدهای split و join
اپراتور Spread
مشکل spread operator با reference values
array destructure
Set (iterables)
فصل هشتم: کار با آبجکت ها (Objects)
معرفی فصل
اضافه، حذف و تغییرات در پراپرتی ها
array notation و نامگذاری پراپرتی ها
dynamic properties
زنجیره سازی (chaining) پراپرتی ها و متدهادر آبجکت
کپی کردن آبجکت
حلقه زدن روی آبجکت
چک کردن موجودیت پراپرتی
استارت مینی پروژه نمایشگاه ماشین (Car Mnager)
اضافه کردن ماشین ها به صفحه
اضافه کردن قابلیت search (جستجو) به پروژه
Object Destructure
this در جاواسکریپت چیست و چگونه کار میکند؟
متدهای bind، call و apply برای this
تعیین ماهیت this در event ها
تاثیر arrow function روی this
جمع بندی فصل
فصل نهم: پروژه فروشگاه
معرفی فصل
فایل های پروژه و اجرای گام های اولیه
اضافه کردن محصولات به صفحه
نمایش قیمت تخفیف خورده
اضافه کردن محصولات به سبد خرید
بروزرسانی قیمت مجموع سبد خرید
نوتیفیکیشن سبد خرید
حذف محصول از سبد خرید
نمایش مشخصات محصول در مودال
رفع مشکل سبدخرید در مودال
فصل دهم: برنامه نویسی شی گرا (Object Oriented Programming) در جاوااسکریپت
نیم نگاهی به فصل پیش رو
OOP چیست؟
OOP در جاوااسکریپت چطور کار میکند؟
constructor functions
prototype چیست؟
زنجیره پروتوتایپ ها (Prototype Chain)
بررسی Prototypal Inheritance در آبجکت های Built-in
یخورده تمرین کنیم!
کلاس ها در جاوااسکریپت (ES6 Classes)
متدهای استاتیک (static methods)
پیاده سازی OOP با Object.create
ارث بری بین کلاس ها (Class Inheritance)
متد super
ارث بری در constructor function ها
4 قانون شی گرایی
متدها و پراپرتی های private
chainable classes
جمع بندی
فصل یازدهم: پروژه فروشگاه پیشرفته تر با OOP
معرفی پروژه
BookList Class
App Class
Cart Class
ارتباط بین کلاس ها بصورت Singleton
CartItem Class
پیاده سازی UI سبد خرید
ادامه پیاده سازی سبد خرید
مجموع سبد خرید و notifiction
Cart Quantity
حذف از سید خرید
پیاده سازی Modal
Toast Class
رفع مشکلات و بهینه سازی
فصل دوازدهم: Api های مرورگر، Browser Storage و ...
Browser Storage چیست؟
Local Storage و Session Storage
Cookie ها در جاوااسکریپت
اضافه کردن Local Storage به سبد خرید پروژه فروشگاه OOP
دریافت اطلاعات size و position المان ها در جاوااسکریپت
کنترل Scroll در جاوااسکریپت
SetTimeout و SetInterval
Location و History مرورگر
Navigator Api
کار با تاریخ و زمان (Date Api)
اعداد و محاسبات در جاوااسکریپت چطور کار میکنند؟
کار با آبجکت Math برای انجام محاسبات
متدهای پرکاربرد String
عبارات باقاعده (Regular Expressions) چیست؟
اصول کار با RegEx
جمع بندی فصل
فصل سیزدهم: کار با Event ها
آشنایی با Event ها در جاوااسکریپت
ثبت و حذف کردن Event Listener ها
Event Object
انواع event های جاوااسکریپت
متدهای آبجکت Event
مفاهیم Capturing و Bubbling
Event Delegation Pattern
سایر موارد مرتبط با Event ها (عملکرد this و programmatic trigger)
Custom Event
مینی پروژه - ساخت tooltip دینامیک
اضافه کردن Custom Event به مینی پروژه
جمع بندی فصل
فصل چهاردهم: Async در جاوااسکریپت (Promise، callback و async await)
معرفی فصل
ُآشنایی با Synchronous Code Execution
Async Code Execution چیست؟
Single Threading در جاوااسکریپت و Event Loop
Callback های چندگانه و اولویت اجرای کدها
مفهوم Callback Hell و Promise
چرخه عمر Promise ها، Promise Chaining و هندل کردن reject
نحوه ساخت Promise و Promisify کردن عملکردها در جاوااسکریپت
async await
Error Handling در async await
سایر متدهای Promise (race, all, allSettled)
جمع بندی فصل
فصل پانزدهم: کار با Http Request و درخواست های Ajax
HTTP Request چیست؟
API چیست؟
ارسال درخواست GET
JSON چست و چطور از آن استفاده کنیم؟
ریفکتور و Promisify کردن متدها
ارسال درخواست POST
ارسال درخواست DELETE
مدیریت خطاها (Error Handling)
استفاده از متد fetch برای درخواست های Http
مدیریت خطاها در متد fetch
ارسال header در درخواست های http
استفاده از کتابخانه axios برای درخواست های Http
جمع بندی فصل
فصل شانزدهم: پروژه سایت فیلم و سریال LaraMovie
معرفی پروژه و API استفاده شده
شروع پروژه و تنظیمات اولیه
رندرکردن فیلم ها
رندرکردن ژانرها و فیلترها
پیاده سازی فیلتر پیشرفته فیلم ها
اتوماتیک کردن فیلتر پیشرفته
ریفکتور کردن و بهینه سازی کدها
رندر کردن فیلم های فیلترشده
عملکرد پاک کردن فیلترها
جستجوی فیلم ها بر اساس keyword
پیاده سازی debounce
اضافه کردن Loading و تغییرات پایانی
فصل هفدهم: کار با ماژول ها (Modules)
وظیفه ماژول در جاوااسکریپت چیه و چرا بهش نیاز داریم؟
ماژول و کدنویسی ماژولار چیست؟
تبدیل همه فایل های پروژه به ماژول
import و export کردن چند entity
import و export کردن چند entity
static VS dynamic import
scope در ماژول ها
فصل هجدهم: webpack، Bundling و سایر ابزارهای توسعه جاوااسکریپت
package manager چیه و چرا بهش نیاز داریم؟
نصب اولین پکیج به صورت گلوبال (serve package)
نصب پکیج در پروژه (Project-wide packages)
bundle کردن پروژه با webpack
اجرای webpack live server روی پروژه
فصل نوزدهم: پروژه بزرگ سایت آگهی نامه به صورت SPA و OOP با webpack
معرفی پروژه و پیش نیازها
ساخت سایت SPA (تک صفحه ای) با جاوااسکریپت
هندل کردن state ها در سایت های SPA
بهبود ساختار سایت های SPA به کمک شی گرایی OOP
تنظیم محیط کاری پروژه، ماژول ها، webpack و ...
اتوماتیک کردن مراحل مختلف رندر Page ها
کار با postman و api پروژه
نمایش آگهی ها در صفحه اصلی
کلاس Ad
رفع مشکل ریدایرکت صفحه اصلی
صفحه جزئیات آگهی
نمایش جزئیات آگهی ها و اتصال به کلاس Ad
نمایش نقشه (map) در آگهی ها
پیاده سازی ثبت نام کاربران
نمایش خطاها با پکیج toastify-js
اضافه کردن Loading
لاگین کاربر و ریفکتور کردن کلاس Form
کلاس Auth
جلوگیری از ورود به صفحات غیرمجاز
صفحه داشبورد و امکان Logout
ثبت آگهی جدید
ارسال اطلاعات آگهی جدید
نمایش آگهی های ثبت شده توسط کاربر
حذف آگهی
نمایش آگهی کاربر
آپلود تصویر آگهی
پیاده سازی جستجو در آگهی ها
فراخوانی آگهی ها بر اساس فیلترهای کاربر
اعمال فیلترهای پیش فرض
اتمام پروژه و تعیین تمرین های شما
build نهایی و آپلود پروژه روی سرور
توضیحات
جاوااسکریپت چیست؟
جاوااسکریپت یک زبان برنامه نویسی است که محبوبیت فوق العاده ای در بازار ایران و خارج از کشور دارد و پایه و اساس طراحی وب سایت های مدرن محسوب میشود. موارد استفاده از جاوااسکریپت بسیار متنوع است. شما با یادگیری جاوااسکریپت علاوه بر طراحی سایت، میتوانید در طراحی اپلیکیشن های موبایل، طراحی نرم افزارهای ویندوزی (دسکتاپ)، ساخت ربات های تلگرامی، هوش مصنوعی و … نیز از جاوااسکریپت استفاده کنید محبوبیت این زبان برنامه نویسی به حدی است که در سه سال اخیر به عنوان محبوب ترین زبان برنامه نویسی دنیا شناخته شده است.
چرا باید جاوااسکریپت را یاد بگیرید؟
1- موقعیت های شغلی: با توجه به محبوبیت بسیار بالای جاوااسکریپت، نیازهای شغلی بسیار زیادی در بازار کار برای برنامه نویس های جاوااسکریپت وجود دارد و این تقاضا روز به روز بیشتر میشود. کافیست که شما جاوااسکریپت را یاد بگیرید تا بتوانید از موقعیت های شغلی بی نظیر جاوااسکریپت در بازار کار ایران و خارج از کشور بهره مند شوید. چرا که تمام شرکت ها و پروژه ها به دنبال افرادی با توانایی بالا در برنامه نویسی جاوااسکریپت هستند.
2- اکوسیستم وسیع: جاوااسکریپت یک اکوسیستم بسیار وسیع از کتابخانه ها، فریم ورک ها، و ابزارهای برنامه نویسی دارد که کار شما را در روند توسعه پروژه ها و نرم افزارها آسان تر میکند. با یادگیری جاوااسکریپت میتوانید از ابزارهای محبوبی مثل React و Vue برای توسعه پروژه هایتان استفاده کنید.همچنین تعداد بسیار بالای افراد فعال در این اکوسیستم، باعث میشود که هرگاه به مشکلی برخورد کردید، به راحتی پاسخ سوال هایتان را دریافت کنید.
3- بدون محدودیت: جاوااسکریپت فقط محدود به طراحی وب سایت و فرانت اند نیست. با یادگیری جاواسکریپت میتوانید به ساخت نرم افزارهای ویندوز، اپلیکیشن های موبایل، ساخت بازی، نرم افزاهای تحت سرور (بک اند)، هوش مصنوعی و یادگیری ماشین، افزونه های مرورگرها، اپلیکیشن ساعت های هوشمند و … هم بپردازید. این حجم از تنوع کارکرد جاواسکریپت در حوزه های مختلف باعث میشود که بازار کار بسیار متنوع و پرشماری از برنامه نویسی جاواسکریپت در داخل و خارج از کشور برای شما مهیا شود.
فرصت را از دست ندهید و همین امروز با تهیه دوره جاوااسکریپت از صفر مطلق، اولین قدم برای تبدیل شدن به یک برنامه نویس حرفه ای جاوااسکریپت را بردارید. برای تبدیل شدن به یک برنامه نویس حرفه ای جاوااسکریپت و باز شدن درب های بازارکار به روی خودتان آماده باشید.
آیا دوره جاواسکریپت دیگری هم نیاز دارم؟
به هیچ وجه. سرفصل ها و نحوه آموزش در این دوره به گونه ای طراحی و اجرا شده که شما به هیچ دوره دیگری برای یادگیری جاوااسکریپت احتیاج پیدا نخواهید کرد. تمام مباحث این دوره به صورت کاملا پروژه محور و مطابق با نیازهای بازار کار آموزش داده شده است تا اطمینان پیدا کنید که این دوره، اولین و آخرین دوره جاوااسکریپتی شما خواهد بود.
پشتیبانی دوره به چه صورت است؟
پشتیبانی این دوره هیچ محدودیت زمانی و مکانی ندارد و از زمان تهیه دوره، پشتیبانی منحصر به فرد آن به صورت دائم در دسترس شما خواهد بود. شما میتوانید تمام سوالات خود را در گروه تلگرامی مختص این دوره مطرح کنید و تمام این سوالات مستقیما توسط مدرس دوره (سیروان منفرد) پاسخ داده خواهد شد. مشاوره های استخدامی، سوالات مربوط به نقشه راه یادگیری، رزومه سازی، شخصی سازی برنامه آموزشی و … همگی در پشتیبانی این دوره قابل دسترس هستند.
وجه تمایز این دوره جاواسکریپت با یقیه دوره ها چیست؟
پروژه محور بودن آموزش های ما مهمترین وجه تمایز ما با سایر دوره هاست. به تجربه ثابت شده که اگر یادگیری بر بستر انجام پروژه های واقعی انجام شود، نتایج بسیار بهتر و ماندگارتری برای دانشجوها خواهد داشت. به همین دلیل تمام مباحث این دوره با مینی پروژه ها و پروژه های بزرگتر ترکیب شده اند و در طول دوره، تمام این مباحث را در با انجام پروژه های متفاوت خواهید آموخت. این کار باعث میشود که علاوه بر یادگیری، با نیازهای پروژه های واقعی و بازار کار هم آشنا شوید و دید خوبی نسبت به روند کاری خود، بعد از اتمام دوره داشته باشید.
پشتیبانی مادام العمر و ارتباط مستقیم با مدرس هم از دیگر مزایای این دوره جاواسکریپت است. چرا که مدرس این دوره در تمامی مراحل یادگیری در کنار شما خواهد بود و تمامی سوالات و مشکلات شما را شخصا بررسی و پاسخ میدهد.