جاوااسکریپت

جاوااسکریپت از صفر تا برنامه‌نویس

زبانِ خودِ جاوااسکریپت — از مقدارها تا async/await و حلقه‌ی رویداد، با داورِ زنده‌ای که خروجی کدت را همان‌جا می‌سنجد.

۲۲۴درس
۱۸۷تمرین
۴۵ساعت
۹۴٪رضایت
مشاهده‌ی سرفصل‌ها
درباره‌ی دوره

چه چیزی یاد می‌گیری؟

جاوااسکریپت از صفر تا برنامه‌نویس

این دوره، خودِ زبانِ جاوااسکریپت را به تو می‌آموزد — نه ترفندهای پراکنده. هر مفهوم را با مقاله می‌خوانی، با تمرینِ عملی تثبیت می‌کنی و کدت را در یک داورِ زنده (Node) اجرا می‌کنی که خروجی کنسول را همان لحظه می‌سنجد. از مقدارها و انواع داده شروع می‌کنیم و قدم‌به‌قدم تا کلوژر، this، پروتوتایپ، کلاس‌ها، عبارت‌های باقاعده، برنامه‌نویسیِ تابعی و در نهایت غولِ آخر یعنی async/await و حلقه‌ی رویدادِ Node پیش می‌رویم — همه به‌شکلِ قطعی و قابل‌سنجش. در پایان، دو پروژه‌ی واقعیِ کنسولی می‌سازی که همه‌ی این مهارت‌ها را کنار هم می‌گذارد.

چه یاد می‌گیری؟

  • مدلِ ذهنیِ اجرا در Node، مقدارها، انواع داده و coercion (== در برابر ===)
  • متغیرها، رشته‌ها و template literal، اعداد و Math
  • کنترلِ جریان و حلقه‌ها (for…of/for…in)، تابع‌ها، پارامترهای default/rest/spread و destructuring
  • اسکوپ، hoisting، TDZ و کلوژر — اولین دیوارِ بزرگ
  • آرایه‌ها و جعبه‌ابزارِ کاملِ متدها: map/filter/reduce/sort/find و بیشتر
  • آبجکت‌ها (?.، ??، کلیدهای محاسبه‌شده، ابزارهای Object.*)
  • this و call/apply/bind، پروتوتایپ و زنجیره‌ی آن، کلاس‌ها و شیءگراییِ مدرن (ارث‌بری، static، get/set، فیلدِ خصوصیِ #)
  • مدیریتِ خطا و خطاهای سفارشی، iterator و generator، Map/Set/WeakMap
  • عبارت‌های باقاعده، JSON، و برنامه‌نویسیِ تابعی (HOF، composition، currying، immutability، purity)
  • async I: callback → Promise → ترکیب‌گرهای Promise.all/race/allSettled
  • async II: async/await، مدیریتِ خطا، و ترتیبِ حلقه‌ی رویداد (microtask در برابر macrotask) — به‌شکلِ قطعی
  • ماژول‌ها (ESM به‌صورتِ مفهومی؛ CommonJS برای پروژه‌های چندفایلیِ اجراشدنی) و دامِ‌های رایجِ زبان
  • دو پروژه‌ی واقعیِ کنسولی به‌عنوانِ جمع‌بندی

برای چه کسی؟

برای کسی که می‌خواهد جاوااسکریپت را عمیق و درست یاد بگیرد — چه تازه‌کار باشی و چه برنامه‌نویسی که می‌خواهد شکاف‌های دانشش را پر کند. اگر هدفت فهمیدنِ کلوژر، this، پروتوتایپ و به‌خصوص async/await در سطحِ مصاحبه و کارِ واقعی است، اینجا جای توست. نیازی به دانشِ قبلیِ جاوااسکریپت نیست.

چرا این دوره؟

  • زبانِ واقعی، داورِ واقعی: هر تمرین در Node اجرا و خروجی‌اش زنده سنجیده می‌شود — نه تئوریِ خشک.
  • async/await به‌عنوانِ ستاره‌ی دوره: حلقه‌ی رویدادِ Node و ترتیبِ microtask/macrotask را به‌شکلِ قطعی و گام‌به‌گام می‌بینی و پیش‌بینی می‌کنی — همان موضوعی که بیشترین داوطلب را زمین می‌زند.
  • تمرکز بر هسته‌ی زبان: اینجا خودِ زبان را می‌آموزی؛ DOM و APIهای مرورگر (document/window/fetch/...) در دوره‌ی جداگانه‌ی HTML/CSS آموزش داده می‌شوند تا اینجا پایه‌ات بی‌حواس‌پرتی محکم شود.
  • بیشترین درس برای سخت‌ترین بخش‌ها: کلوژر، this، پروتوتایپ، کلاس، آرایه‌ها و async دو فصلِ پرحجم گرفته‌اند چون بیشترین ارزش را دارند.
۲۶ سرفصل ساخت‌یافته
۱۸۷ تمرین عملی
اجرا و بازخورد آنی در مرورگر
گواهی پایان دوره
ساخته‌ی تیم آموزشی دینا کد

این دوره را تیم آموزشی دینا کد طراحی کرده — با تمرکز بر «یادگیری با انجام‌دادن»: هر مفهوم با تمرین عملی و داوری خودکار که کدت را همان لحظه می‌سنجد، و سرفصل‌هایی که بر پایه‌ی مسیر واقعی یک برنامه‌نویس چیده شده‌اند.

سرفصل‌ها

سرفصل‌های دوره

۲۶ سرفصل · ۲۲۴ درس · ۱۸۷ تمرین

۱

شروع: مدلِ اجرا، مقدارها و انواع داده

۸ درس
  • جاوااسکریپت چیست و Node چطور فایلت را اجرا می‌کندپیش‌نمایش رایگان
  • اولین چاپ: console.logپیش‌نمایش رایگانتمرین
  • console.log با چند ورودیپیش‌نمایش رایگانتمرین
  • literalهای هر نوعپیش‌نمایش رایگانتمرین
  • typeof و دامِ معروفشپیش‌نمایش رایگانتمرین
  • تشخیصِ نوعِ درست: null و آرایهپیش‌نمایش رایگانتمرین
  • مقدار در برابر ارجاعپیش‌نمایش رایگانتمرین
  • تورِ هشت نوع: تابع describeپیش‌نمایش رایگانتمرین
۲

متغیرها: let و const (و var به‌عنوانِ میراث)

۶ درس
  • تعریف، مقداردهیِ اولیه و انتساب: let و constپیش‌نمایش رایگان
  • let یعنی پیوندِ قابلِ تغییر: شمارنده و جابه‌جاییپیش‌نمایش رایگانتمرین
  • const برابرِ ثابت‌بودنِ مقدار نیست: پیوند در برابر مقدارپیش‌نمایش رایگانتمرین
  • اسکوپِ بلوکی: متغیرِ داخلِ { } بیرون دیده نمی‌شودپیش‌نمایش رایگانتمرین
  • var به‌عنوانِ میراث: چرا دیگر سراغش نمی‌رویم
  • کدِ آماده: ساختنِ یک شیءِ تنظیمات با const و letتمرین
۳

عملگرها و عبارت‌ها

۷ درس
  • عبارت چیست و عملگرها چه می‌کنند
  • عملگرهای ریاضی، یکانی و افزایش/کاهشتمرین
  • مقایسه و عملگرِ سه‌تایی ?:تمرین
  • منطقی‌ها و کوتاه‌بست: && و || مقدار برمی‌گردانندتمرین
  • ?? و زنجیره‌ی ?. برای مقدارِ پیش‌فرضِ امنتمرین
  • عملگرهای انتسابِ منطقی: ||= &&= ??=تمرین
  • تورِ آماده: تقدم، وابستگی و + دوگانهتمرین
۴

★ تبدیل و coercion نوع‌ها (== در برابر ===)

۸ درس
  • تبدیلِ نوع: صریح در برابر ضمنی
  • تبدیلِ صریح: Number، String، Boolean و اصطلاحِ !! و +تمرین
  • parseInt و parseFloat: عادتِ رادیکس و سورپرایزهاتمرین
  • تبدیلِ ضمنی: + رشته‌ای در برابر - * / عددی
  • truthy و falsy: هشت مقدارِ falsyتمرین
  • == در برابر ===: دامِ‌های کلاسیکتمرین
  • دامِ NaN: Number.isNaN در برابر isNaN و Object.isتمرین
  • تورِ کاملِ coercion: راهنمای میدانیِ دامِ‌هاتمرین
۵

رشته‌ها و template literal

۹ درس
  • رشته‌ها: ساخت، تغییرناپذیری، طول و اندیس
  • برش رشته: slice و دسترسی با atتمرین
  • جست‌وجو در رشته: includes و indexOf و startsWith/endsWithتمرین
  • صیقل دادن متن: trim، toUpperCase/toLowerCase، padStart، repeatتمرین
  • جایگزینی و تکه‌تکه کردن: replace/replaceAll و split/joinتمرین
  • template literal: درون‌ریزی، چندخطی و expressionتمرین
  • tagged template، String.raw و مبانیِ یونیکد
  • کار با کاراکترها: charCodeAt و fromCharCode و شمارشِ درستتمرین
  • نمایش: رمزِ rot13 با کارِ کاراکتریتمرین
۶

اعداد و Math

۷ درس
  • اعداد چطور ذخیره می‌شوند: IEEE-754 و دامِ دقت
  • گرد کردنِ امنِ پول با ‎.toFixed‎ (که رشته برمی‌گرداند)تمرین
  • مقایسه‌ی امنِ اعشاری با Number.EPSILONتمرین
  • توابعِ Math: گرد کردن، قدرمطلق، توان، ریشه و قید (clamp)تمرین
  • ویژگی‌ها و متدهای Number و تبدیلِ مبنا با toString(radix)تمرین
  • BigInt: اعدادِ بزرگِ دقیق (پسوندِ n و عدم‌اختلاط با Number)تمرین
  • نمایش: مبناها، جداکننده‌ی رقمی، بیت‌ها و یک تاسِ قطعی (LCG)تمرین
۷

کنترلِ جریان و حلقه‌ها

۱۰ درس
  • تصمیم‌گیری: if/else، truthiness و guard clause
  • early return: اعتبارسنجی با guard clauseتمرین
  • ternary به‌عنوان عبارت (و کِی تو در تو نکنیم)تمرین
  • switch: case/break/default و fall-through عمدیتمرین
  • الگوی switch(true) برای بازه‌هاتمرین
  • while و do…while: تکرار تا برقراریِ شرطتمرین
  • for کلاسیک و حلقه‌های تو در توتمرین
  • for…of با entries() و دامِ for…inتمرین
  • break، continue و حلقه‌های برچسب‌دار (labeled)تمرین
  • نمایش: FizzBuzz و چه‌وقت سراغِ متدهای آرایه برویمتمرین
۸

تابع‌ها: مبانی

۱۰ درس
  • تابع چیست؟ تعریف، فراخوانی و سه شکلِ ساختن
  • پارامتر، آرگومان و returnتمرین
  • وقتی return نباشد: undefinedِ ضمنیتمرین
  • آبجکتِ arguments (میراث)تمرین
  • تابع‌ها مقدارند: callback را پاس بدهتمرین
  • تابعی که تابع می‌سازد (factory)تمرین
  • بازگشت (recursion): فاکتوریل و جمعِ تا nتمرین
  • بازگشتِ خروجی‌دار: شمارشِ معکوستمرین
  • تابعِ خالص در برابرِ دارای اثرِ جانبیتمرین
  • نمایش: IIFE و یک ماشین‌حساب با callbackتمرین
۹

★ اسکوپ، hoisting، TDZ و کلوژر

۱۰ درس
  • اسکوپِ لِکسیکال و زنجیره‌ی اسکوپ
  • زنجیره‌ی اسکوپ در عمل: تابع تو در توتمرین
  • hoisting و TDZ: چرا قبل از تعریف خطا می‌گیری
  • اثباتِ TDZ: گرفتنِ ReferenceErrorتمرین
  • اولین کلوژر: کارخانه‌ی شمارندهتمرین
  • وضعیتِ خصوصی با کلوژر: حساب بانکیتمرین
  • ★ باگِ کلاسیک: کلوژر داخلِ حلقه (var در برابر let)تمرین
  • رفعِ باگ پیش از let: ترفندِ IIFE
  • کاربردِ واقعی: memoization با کلوژرتمرین
  • تورِ کدِ آماده: الگوی ماژول، شناسه‌ساز و چاشنیِ partialتمرین
۱۰

سینتکسِ مدرنِ تابع و destructuring

۸ درس
  • تابعِ پیکانی (arrow): سینتکسِ کوتاه
  • بازگشتِ ضمنی با arrowتمرین
  • پارامترهای پیش‌فرض (default)تمرین
  • پارامترهای rest و spread در فراخوانیتمرین
  • spread برای آرایه‌ها و آبجکت‌ها (و کپیِ سطحی)تمرین
  • تجزیه‌ی آرایه (array destructuring)تمرین
  • تجزیه‌ی آبجکت: تغییرِ نام، پیش‌فرض و گاردِ ={}تمرین
  • همه‌ی سینتکسِ مدرن کنارِ همتمرین
۱۱

★ آرایه‌ها و جعبه‌ابزارِ متدها

۱۲ درس
  • آرایه از نزدیک: ساخت، اندیس، length و چاپِ قطعی
  • ساختنِ آرایه: Array.from، Array.of و Array.isArrayتمرین
  • دسترسی و at: اندیسِ منفی و lengthتمرین
  • افزودن و حذف: push/pop/shift/unshift و spliceتمرین
  • مرتب‌سازی با comparator و دامِ مرتب‌سازیِ پیش‌فرضتمرین
  • نسخه‌ی تغییرناپذیر: slice، concat و خانواده‌ی ES2023 (toSorted/toReversed/with)تمرین
  • map و filter: تبدیل و صافی‌کردنتمرین
  • آشنایی با reduce: انباشتگر، مقدارِ اولیه و reduceRight
  • reduce در عمل: جمع، بیشینه و جمعِ روان (running total)تمرین
  • reduce برای ساختنِ آبجکت: شمارش و گروه‌بندی (group-by)تمرین
  • جست‌وجو و وارسی: find/findLast، some/every، includesتمرین
  • نمایش: خطِ لوله‌ی داده — زنجیره‌ی map→filter→reduce، dedupe و آرایه‌ی دوبعدیتمرین
۱۲

آبجکت‌ها در عمق

۹ درس
  • ساختِ آبجکت: literal، شورتهند و کلیدهای محاسبه‌شده
  • شورتهند و کلیدِ محاسبه‌شده در عملتمرین
  • دسترسی: نقطه‌ای، براکتی و کلیدِ پویاتمرین
  • زنجیره‌ی اختیاری ?. و nullishِ ?? (الگوی cityOf)تمرین
  • افزودن، تغییر و حذف: عملگرِ in و deleteتمرین
  • پیمایش: Object.keys/values/entries و دامِ ترتیبِ کلیدِ عددیتمرین
  • کپی: assign، spreadِ کم‌عمق، structuredCloneِ عمیق و freezeتمرین
  • پلِ آبجکت↔آرایه: entries/fromEntries و الگوی invertتمرین
  • تورِ آماده: getter/setter، defineProperty و پلِ Object.createتمرین
۱۳

★ this و call / apply / bind

۹ درس
  • چهار قاعده‌ی this: مقدارش با «جای صدا زدن» تعیین می‌شود
  • پیوندِ ضمنی: this همان آبجکتِ پیش از نقطه استتمرین
  • پیوندِ صریح: call در برابر applyتمرین
  • bind: پیوندِ دائمی و آرایشِ جزئی (partial application)تمرین
  • گم‌شدنِ this: وقتی متد را از آبجکتش جدا می‌کنی
  • arrow و this لِکسیکال: حلقه‌ی کلوژر بسته می‌شودتمرین
  • ترمیمِ this در کال‌بکِ کلاس با bindتمرین
  • دست‌ساز: bind و call را خودت بسازتمرین
  • نمایش: چهار قاعده‌ی this کنار همتمرین
۱۴

★ پروتوتایپ و زنجیره‌ی آن

۹ درس
  • مدلِ پروتوتایپ: هر آبجکت یک پدر دارد
  • ساختنِ زنجیره با Object.create و lookupتمرین
  • خواندن و تغییرِ پروتوتایپ: getPrototypeOf و setPrototypeOfتمرین
  • شخصی یا ارثی؟ hasOwnProperty، Object.hasOwn و shadowingتمرین
  • تابع‌سازنده، خاصیتِ .prototype و کلیدواژه‌ی newتمرین
  • new واقعاً چه می‌کند؟ بازسازیِ چهار قدمِ آنتمرین
  • پیمایشِ زنجیره: instanceof و isPrototypeOfتمرین
  • ارث‌بریِ پروتوتایپی با دست (پیش از class)تمرین
  • تورِ کدِ آماده: زنجیره‌ی built-inها و چرا extend نکنیمتمرین
۱۵

★ کلاس‌ها و شیءگراییِ مدرن

۱۰ درس
  • از پروتوتایپ تا class: نگاهِ مدرن
  • اولین کلاس: constructor، متد و فیلدِ عمومیتمرین
  • وضعیتِ نمونه و JSON.stringifyتمرین
  • get و set: ویژگیِ محاسبه‌شدهتمرین
  • اعضای static: متد و فیلدِ متعلق به خودِ کلاستمرین
  • ارث‌بری: extends و superتمرین
  • کپسوله‌سازیِ واقعی با فیلدِ خصوصیِ #تمرین
  • تشخیصِ نوعِ شیء با #field in obj (brand check)تمرین
  • ترکیب در برابر ارث‌بری، mixinها و دامِ‌های کلاس
  • نمایش: یک کلاسِ کاملِ اصطلاحی (Stack)تمرین
۱۶

مدیریتِ خطا و خطاهای سفارشی

۸ درس
  • خطا چیست؟ آبجکتِ Error و زیرنوع‌های آن
  • اولین تله: try / catch و خواندنِ پیامِ خطاتمرین
  • تشخیصِ نوعِ خطا با e.constructor.nameتمرین
  • نگهبان و throw: اعتبارسنجیِ ورودیتمرین
  • finally و انتشارِ مجددِ خطا (rethrow)تمرین
  • خطاهای سفارشی: extends Error و nameتمرین
  • خطا یا نتیجه؟ الگوی بازگشتِ {ok, value/error}تمرین
  • نمایش: خطای ناهمگام با try/catch و await، و option به‌نامِ causeتمرین
۱۷

iterator، iterable و generator

۸ درس
  • پروتکلِ پیمایش: iterable و iterator
  • اولین iterator دستی: شیئی با next()تمرین
  • iterable سفارشی: شیءِ rangeتمرین
  • اولین generator: function* و yieldتمرین
  • دنباله‌های تنبل و بی‌نهایت (قطعی)تمرین
  • تفویض با yield*تمرین
  • ارتباطِ دوطرفه: next(value)تمرین
  • نمایش: خطِ لوله‌ی تنبل با generatorتمرین
۱۸

کالکشن‌ها: Map، Set و WeakMap

۸ درس
  • چرا Map و Set؟ کجا از آبجکتِ ساده بهتر‌اند
  • اولین Map: set / get / has / delete / sizeتمرین
  • کلیدهای هر نوع و ترتیبِ درج در Mapتمرین
  • Map از روی entries و تبدیل دوطرفه با آبجکتتمرین
  • Set: یکتایی و حذفِ تکراری از آرایهتمرین
  • جبرِ مجموعه‌ها: اجتماع، اشتراک و تفاضلتمرین
  • WeakMap و WeakSet: مرجعِ ضعیف، GC و دادهٔ خصوصی
  • نمایش: شمارشگرِ بسامد با Map و کَشِ LRUتمرین
۱۹

عبارت‌های باقاعده (Regular Expressions)

۹ درس
  • regex چیست؟ ساختِ الگو و فلگ‌ها
  • test و کلاس‌های کاراکتری: اعتبارسنجیِ رنگِ هگزتمرین
  • لنگرها، \b و کمیت‌سنج‌ها: اعتبارسنجیِ نامِ کاربریتمرین
  • گروه‌های capturing و نام‌دار با matchتمرین
  • استخراجِ همه‌ی تطبیق‌ها با matchAll و فلگِ gتمرین
  • جایگزینی با replace: $1، گروهِ نام‌دار و تابعِ replacerتمرین
  • الگوهای کاربردی: نرمال‌سازیِ فاصله، split و slugifyتمرین
  • اعتبارسنجیِ ایمیل و lookahead (پیشرفته)تمرین
  • موتورِ قالبِ {{key}} — کدِ آماده برای اجراتمرین
۲۰

JSON

۶ درس
  • JSON چیست؟ سریالایز و بازخوانی داده
  • JSON.stringify: خروجیِ قطعی از کالکشن‌هاتمرین
  • stringify چه چیزهایی را می‌اندازد + replacer و فاصله‌گذاریتمرین
  • JSON.parse و reviver: رشته به مقدارتمرین
  • رفت‌وبرگشت برای کپیِ عمیق و قلابِ toJSONتمرین
  • نمایش: اعتبارسنجِ JSON با try/catch و تطبیقِ schemaتمرین
۲۱

برنامه‌نویسیِ تابعی (Functional JS)

۸ درس
  • سبکِ تابعی: خلوص و اثرِ جانبی
  • تابعِ خالص: بدونِ تغییرِ ورودیتمرین
  • ناوردایی: کپیِ به‌روزشده و قفل‌کردنتمرین
  • ترکیب‌گرها: once، negate، identity، constantتمرین
  • ترکیبِ تابع‌ها: pipe و composeتمرین
  • currying و کاربردِ جزئی (partial)تمرین
  • بازگشت + memoization با کشتمرین
  • نمایش: خطِ لوله‌ی توصیفی و جعبه‌ی Maybeتمرین
۲۲

★ async I: از callback تا Promise

۱۱ درس
  • چرا ناهمگام؟ مدلِ ذهنیِ sync در برابر async
  • کال‌بک و ترتیبِ اجرا با setTimeoutتمرین
  • قراردادِ error-first و جهنمِ کال‌بک
  • اولین Promise: new Promise با resolve و rejectتمرین
  • زنجیره‌سازی با then / catch / finallyتمرین
  • بازگشتِ مقدار از then و صاف‌شدنِ Promiseِ تو در توتمرین
  • انتشارِ خطا در زنجیره و ادامه پس از catchتمرین
  • Promise.all — نتایجِ مرتب مستقل از زمانِ پایانتمرین
  • Promise.allSettled — هرگز reject نمی‌شودتمرین
  • Promise.race و Promise.any — قطعی‌شدهتمرین
  • نمایش: زنجیره‌ی کاملِ Promise با ترکیب‌گرهاتمرین
۲۳

★ async II: async/await و حلقه‌ی رویداد

۱۱ درس
  • async/await: همان Promise با لباسِ تازه
  • اولین تابعِ async و باز کردنِ مقدار با awaitتمرین
  • ترجمه‌ی then-chain به async/awaitتمرین
  • مدیریتِ خطا با try/catch/finally و awaitتمرین
  • ترتیبی در برابر موازی: await در حلقه یا Promise.allتمرین
  • ★ حلقه‌ی رویداد: استک، صفِ microtask و صفِ macrotask
  • ★ ترتیب را پیش‌بینی کن: همگام → microtask → macrotaskتمرین
  • promisify: از callback به Promiseتمرین
  • تلاشِ دوباره: retry با شمارنده (نه تصادف)تمرین
  • for await…of روی async generatorتمرین
  • تورِ کدِ آماده: زمان‌بندِ قطعی و top-level awaitتمرین
۲۴

ماژول‌ها و دامِ‌های رایجِ زبان

۹ درس
  • ماژول چیست؟ ESM در برابر CommonJS
  • اولین ماژول: module.exports و requireتمرین
  • چند تابع در یک ماژول: exports و وارد کردنِ گزینشیتمرین
  • کش‌شدنِ ماژول‌ها: بدنه فقط یک‌بار اجرا می‌شودتمرین
  • دامِ کلاسیکِ ۱: == در برابر === و انتخابِ مقدارِ پیش‌فرضتمرین
  • دامِ کلاسیکِ ۲: var در حلقه و کلوژر (راهِ حلِ let)تمرین
  • دامِ کلاسیکِ ۳: جهش، آلیاسِ مرجع و کپیِ سطحی/عمیقتمرین
  • دامِ کلاسیکِ ۴: typeof null، تشخیصِ آرایه و sort بدونِ comparatorتمرین
  • نمایش: یک برنامه‌ی کوچکِ چندفایلیِ تمیز (CommonJS)تمرین
۲۵

پروژه‌ی پایانی ۱: موتورِ داده و تحلیل

۷ درس
  • نقشه‌ی پروژه: موتورِ تحلیلِ CSV چه می‌کند؟
  • گامِ اول: tokenizer — رشته‌ی CSV را به ردیف و سلول بشکنتمرین
  • گامِ دوم: parser — جدول را به رکوردهای آبجکتی با نوع‌دهیِ خودکارتمرین
  • گامِ سوم: pipeline — توابعِ خالصِ groupBy و aggregate و multiKeySortتمرین
  • گامِ چهارم: کلاسِ Dataset — رابطِ زنجیره‌ایِ تحلیلتمرین
  • گامِ پنجم (نهایی): چندفایلیِ CommonJS و گزارشِ کامل با main.jsتمرین
  • تورِ کدِ آماده: موتورِ تحلیل از نگاهِ بالاتمرین
۲۶

پروژه‌ی پایانی ۲: صفِ کارِ ناهمگام

۷ درس
  • نقشه‌ی پروژه: چرا «ساعتِ منطقی» قلبِ یک async قطعی است
  • ساعتِ منطقی: یک Clock قطعی به‌جای زمانِ واقعیتمرین
  • صفِ کار بر پایه‌ی اولویت (با شکستِ گرهِ قطعی)تمرین
  • وابستگی‌ها: ترتیب‌بندیِ توپولوژیک و کشفِ حلقهتمرین
  • تلاشِ مجدد و سقفِ هم‌زمانی (با Promise قطعی)تمرین
  • یکپارچه‌سازی: زمان‌بند با generator برای جریانِ کارتمرین
  • اجرای نهایی: یک سناریوی کامل با شکست، تلاشِ مجدد و گزارشِ پایانیتمرین

همین حالا شروع کن

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