مفاهیم و الگوریتمهای JavaScript (سطح متوسط)
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- یادگیری مفاهیم پیشرفته JavaScript
- آموزش ES6 ،Prototype، حلقهها، async و iterator
- بررسی Recursion، کپی عمیق و سطحی و Encapsulation
- یادگیری در مورد iterator ،Promise و JSON
پیش نیازهای دوره
- آشنایی اولیه با HTML و CSS الزامی نیست اما اهمیت دارد. دانشجو باید دانش قبلی از JavaScript داشته باشد.
توضیحات دوره
این دوره دومین دوره JavaScript شما خواهد بود. مدرس تمام قابلیتهای مختلفی را که در دورههای مبتدی پوشش داده نمیشوند و همچنین موضوعات پیشرفته اصلی را که در سطح مقدماتی نادیده گرفته میشوند، بررسی خواهد کرد.
در این دوره مباحث ES6 در زمینه برنامهنویسی غیرهمزمان مانند Promise async و await بررسی میشود. همچنین مفاهیمی چون fetch ،Macro task و Micro task و دانش پیشنیاز ساختار داده مانند Queue و Heap آموزش داده میشوند.
مدرس زنجیره Prototype ،Object constructor و تمامی ترفندهای مربوطه را شرح میدهد. همچنین کلاسها در JavaScript بررسی میشوند؛ هرچند این کلاسها مانند سایر زبانها نیستند و در واقع نسخه دوم تابع سازنده محسوب میشوند.
درک عمیق ساختار داده برای هر برنامهنویسی که قصد ارتقای سطح خود را دارد ضروری است. مدرس این موضوع را پوشش خواهد داد تا دانشجو آماده یادگیری الگوریتمهای مرتبسازی شود. در بخش پایانی دوره، نحوه پیادهسازی چندین الگوریتم مرتبسازی در JavaScript آموزش داده میشود.
با شروع این دوره، گستره وسیعی از موضوعات پوشش داده میشود که درک عمیقتری از JavaScript و علوم کامپیوتر به دانشجو ارائه میدهد.
این دوره برای چه کسانی مناسب است؟
- توسعهدهندگان Front-end، Full-stack یا هر کسی که به استفاده از JavaScript در پروژههای خود علاقهمند است.
مفاهیم و الگوریتمهای JavaScript (سطح متوسط)
-
معرفی مدرس برای علاقهمندان به خرید دوره 01:56
-
ویژگیها و خصوصیات VAR 07:47
-
ویژگیها و خصوصیات LET 02:49
-
نوع Const و ویژگیهای آن 01:10
-
TDZ یا منطقه مرده موقتی 01:59
-
مثال واقعی از تفاوت LET در مقابل VAR 06:10
-
نام متغیر، نام تابع و نام آرگومان؛ کدامیک بالاترین اولویت را دارد؟ 06:49
-
بررسی Arguments، caller و callee 09:42
-
سه روش برای ارجاع THIS به یک تابع 07:41
-
توابع مرتبه بالا 05:17
-
مفاهیم Currying و Closureها 05:13
-
مبحث Closure 03:46
-
کاربرد واقعی Closure در پروژهها 02:36
-
سینتکس Arrow function 06:21
-
مفهوم THIS در توابع Arrow 05:06
-
کاربردهای Arrow function 05:31
-
تجزیه آرایه 06:02
-
تجزیه آبجکت 08:22
-
تجزیه رشته 03:39
-
تجزیه عدد، Boolean ،Null و Undefined 04:11
-
تجزیه آرگومانهای تابع 04:08
-
مقدمهای بر Map 06:40
-
استفاده از حلقه FOR OF بر روی MAP 03:14
-
مقدمهای بر SET 03:55
-
موارد استفاده از SET 02:11
-
مقدمهای بر Symbol 01:42
-
مقدار Symbol 02:53
-
متد ()Symbol.for 01:57
-
استفاده از مقدار Symbol به عنوان نام ویژگی 03:04
-
سمبلهای شناخته شده 04:38
-
پروتکل تکرار: پروتکلهای Iterable و Iterator 04:19
-
ایجاد یک Iterator 09:11
-
مبحث Generator 04:46
-
کاربردهای Generator 07:41
-
متد ()next 05:58
-
عملگر *yield 01:59
-
مقدمهای بر Promise 08:17
-
سازنده در Promise 09:19
-
کاربردهای Promise 05:54
-
آبجکت thenable 03:44
-
متدهای ()Promise.resolve و ()Promise.reject 03:55
-
محدودیتهای ()Promise.resolve و ()Promise.reject 05:44
-
پردازش چندین Promise به صورت همزمان 08:55
-
مبحث async و await 06:18
-
بخش دوم async و await 03:58
-
Reflect و متدهای آن 06:05
-
مقدمهای بر Proxy 08:58
-
ایجاد ویژگیهای خصوصی با استفاده از تله GET 04:26
-
تله SET 03:21
-
تلههای has و DeleteProperty 05:10
-
چگونگی استفاده از آبجکت Proxy به عنوان Prototype 08:00
-
تله defineProperty 10:31
-
تله apply 04:52
-
تله Constructor 04:32
-
پروکسی قابل ابطال 03:44
-
کاربردهای واقعی در دنیای برنامه نویسی 14:32
-
کار با JSON 08:54
-
مقدمه و تاریخچه 04:59
-
شروع کار با سیستم ماژول ES6 02:58
-
نحوه استفاده از import 03:50
-
نحوه استفاده از export 05:54
-
اکسپورت پیشفرض 04:50
-
مرجع پویا چیست؟ تفاوت بین اکسپورت نامدار و پیشفرض 04:17
-
نحوه استفاده از ماژولهای ES6 در محیط مرورگر 06:33
-
نحوه فعالسازی حالت سختگیرانه 06:11
-
تغییرات اعمال شده توسط حالت سختگیرانه 05:08
-
بررسی Prototype یا __proto__ 04:42
-
ویژگی Prototype در یک تابع سازنده 07:28
-
کاربردهای واقعی زنجیره Prototype 05:03
-
مقدمهای بر Object constructor 02:20
-
بررسی متدهای values ،keys ،entries و is در کلاس Object 02:31
-
بررسی متدهای setPrototypeOf و assign در کلاس Object 05:04
-
بررسی متد ()Object.create بخش اول 02:05
-
بررسی متد ()Object.create بخش دوم 03:18
-
صفات ویژگیها 02:07
-
متد ()Object.getOwnPropertyDescriptor 02:48
-
چگونگی ایجاد ویژگیهایی با صفات شخصیسازی شده 03:36
-
متد ()Object.preventExtensions 04:54
-
متد ()Object.seal 02:37
-
متد ()Object.freeze 01:47
-
مقدمهای بر Getter و Setter 03:23
-
ایجاد Accessorها با استفاده از Object.defineProperty 02:11
-
اتصال دوطرفه داده با استفاده از Getter و Setter. 02:49
-
تعریف تابع سازنده شخصی 05:56
-
ویژگیها و متدهای استاتیک 05:47
-
ویژگیهای خصوصی در تابع سازنده 03:49
-
تعریف Getter و Setter در تابع سازنده 01:29
-
مقدمهای بر کلاسها 05:16
-
مقایسه بین کلاس و تابع سازنده 06:12
-
تعریف متدها: نمونه، پروتوتایپ و استاتیک 04:08
-
فیلدهای عمومی و فیلدهای خصوصی 05:06
-
ویژگیهای خصوصی در کلاسها 02:05
-
گسترش ویژگیها 06:13
-
گسترش متدها 04:04
-
استفاده از کلاس برای گسترش سازنده ()Array 04:33
-
بررسی [Symbol.species] 03:08
-
استفاده از new.target برای کنترل نمونهسازی 02:52
-
چگونکی غیرقابل نمونهسازی کردن یک کلاس با استفاده از new.target 02:39
-
مفهوم Mixins 05:17
-
پیشنیازهای درک مفاهیم باقیمانده این بخش.= 02:54
-
بررسی Thread ،Process و مفاهیم Async/Sync.= 06:11
-
مفهوم بازگشتی 04:28
-
مفاهیم Microtask و Macrotask 04:49
-
بررسی Event loop ،Microtask و Macrotask 07:40
-
تمرین عملی 07:04
-
متد ()process.nextTick و صف Next tick 01:50
-
تعاریف مفاهیم Encapsulation ،Inheritance و Polymorphism 03:31
-
مقادیر ویژگی از نوع Primitive در مقابل نوع Reference 04:59
-
بررسی برنامه Douglas Crawford 02:15
-
استفاده از سازنده در ترکیب با متدهای ()call یا ()apply 02:00
-
ترکیب دو تابع سازنده 01:48
-
یک مورد خاص از وراثت 03:19
-
بررسی عملگرهای typeof و instanceof 03:16
-
چگونگی ایجاد کپی سطحی از یک آبجکت 03:54
-
چگونگی ایجاد کپی عمیق از یک آبجکت 08:18
-
اختصاص عمیق به یک آبجکت 05:06
-
بررسی سیستم مدیریت حافظه در JavaScript 04:17
-
الگوریتم Mark and Sweep 02:19
-
ویژگیهای اولیه آرایهها 04:48
-
بررسی مفهوم THIS در توابع یا متدهای قرار گرفته در آرایه 03:45
-
متد concat در آرایهها 02:38
-
حذف عناصر تکراری از یک آرایه 05:51
-
متد filter و موارد مشابه 04:59
-
دریافت بخشی از آرایه با استفاده از متد splice() 02:48
-
نحوه یافتن بزرگترین و کوچکترین عنصر در یک آرایه 04:51
-
بررسی خطای آرایههای دارای حلقه 03:22
-
آبجکت پوششدهنده رشته 01:38
-
موارد استفاده از متد ()split 02:40
-
استخراج بخشی از یک رشته با استفاده از ()slice 03:49
-
جایگزینی بخشی از یک رشته با ()replace 02:57
-
دستکاری DOM در رابطه با رشتهها 02:16
-
انواع داده در JavaScript 01:29
-
مفاهیم Type Coercion و Type Casting 04:26
-
بررسی null ،undefined و NaN 02:47
-
مشکلات کار با typeof و instanceof 04:06
-
نحوه ساخت یک سیستم بررسی نوع داده با ترکیب typeof و instanceof 05:55
-
بررسی نوع داده با استفاده از ویژگی constructor 02:30
-
بررسی نوع داده با ترکیب ()toString و ()call یا ()apply 04:04
-
زنجیره Scope و مفهوم Closure 04:18
-
مقایسه Lexical scoping در مقابل Dynamic scoping 02:06
-
جابجایی مقادیر دو متغیر 04:42
-
شمارش دفعات تکرار هر کاراکتر در یک رشته 02:00
-
یافتن پرکاربردترین کاراکتر 03:02
-
شمارش تعداد کلمات موجود در یک رشته 02:38
-
یافتن کلمات با بیشترین و کمترین تکرار 04:48
-
تئوری مرتبسازی حبابی 03:40
-
پیادهسازی مرتبسازی حبابی با JavaScript 03:43
-
مرتبسازی حبابی معکوس 01:30
-
سازماندهی آرایه به صورت صعودی یا نزولی 02:55
-
بهبود کارایی برنامه با اتمام زودرس حلقهها 03:08
-
بررسی مشکل حلقه for داخلی 02:32
-
اجتناب از مقایسههای غیرضروری با استفاده از rightSortBorder. 04:34
-
مرتبسازی حبابی معکوس و LeftSortBorder 01:58
-
مرتبسازی کوکتل 04:41
-
بهبود کارایی با افزودن مرزهای مرتبسازی چپ و راست 05:04
-
مقدمهای بر مرتبسازی سریع 02:59
-
پیادهسازی مرتبسازی سریع با JavaScript 06:38
-
مقدمهای بر مرتبسازی شمارشی 06:23
-
مدیریت عناصر تکراری 02:27
-
بهبود کارایی شماره 1 02:32
-
بهبود کارایی شماره 2 03:09
-
مقدمهای بر مرتبسازی درجی 01:52
-
پیادهسازی مرتبسازی درجی با JavaScript 04:12
-
مقدمهای بر مرتبسازی باکت 04:39
-
پیادهسازی مرتبسازی باکت با JavaScript 07:00
مشخصات آموزش
مفاهیم و الگوریتمهای JavaScript (سطح متوسط)
- تاریخ به روز رسانی: 1404/12/10
- سطح دوره:متوسط
- تعداد درس:165
- مدت زمان :12:13:24
- حجم :4.67GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy