DMarlon Studio

Advanced JavaScript course

For those who know the basics: the techniques used in real projects. In DMarlon Studio, JavaScript is the language of the Electron + React, Next.js, React, Vue, HTML, Chrome extension and React Native targets: the studio generates the UI and you write the logic.

Start
  1. 1Scope and closuresLearn what variable scope means in JavaScript and how a closure keeps private data between calls, using order and invoice counters.Lesson 1
  2. 2this, bind, call and applyUnderstand what this points to in JavaScript and how to pin it down with bind, call and apply, using a shopping cart as the example.Lesson 2
  3. 3Prototypes and the chainSee how JavaScript inheritance really works: prototypes, Object.create, constructor functions and the chain that ends in null.Lesson 3
  4. 4Classes and inheritanceWrite JavaScript classes with a constructor, chainable methods and inheritance through extends and super, using bank accounts.Lesson 4
  5. 5Getters, setters and private fieldsProtect object state in JavaScript with # private fields, validate values with setters and compute properties with getters.Lesson 5
  6. 6Static members and SymbolUse static in JavaScript for class-wide counters and factory methods, and Symbol for unique keys and custom object conversion.Lesson 6
  7. 7Iterators and generatorsProduce values on demand in JavaScript with function* and yield, and make your own objects work with for...of through Symbol.iterator.Lesson 7
  8. 8Map, Set and WeakMapGroup and count data in JavaScript with Map and Set, and attach information to objects without touching them using WeakMap.Lesson 8
  9. 9Higher-order functions and compositionBuild JavaScript functions that take and return functions: pipe, compose, logging wrappers and combinable rules for your orders.Lesson 9
  10. 10Currying and memoizationFix arguments step by step with currying and skip repeated work with memoization in JavaScript, using prices and Fibonacci.Lesson 10
  11. 11PromisesLearn how JavaScript promises work: resolve and reject, then chains, catch for errors and finally for clean-up.Lesson 11
  12. 12async and awaitWrite asynchronous JavaScript that reads top to bottom with async and await, and handle its errors with try/catch.Lesson 12
  13. 13Promise.all, allSettled and raceRun several async tasks at once in JavaScript and combine their results with Promise.all, allSettled, race and any.Lesson 13
  14. 14The event loopUnderstand the order in which Node runs JavaScript: synchronous code, microtasks (promises, nextTick) and macrotasks (setTimeout).Lesson 14
  15. 15The module pattern and IIFEsHide internal state in JavaScript with IIFEs and the module pattern, and see how Node wraps each file and what module.exports exports.Lesson 15
  16. 16Custom errors and finallyCreate your own JavaScript error classes with extends Error, chain the original cause and always release resources with finally.Lesson 16
  17. 17Regular expressionsParse a log in JavaScript with regular expressions: named groups, test, matchAll, replace with a function and email validation.Lesson 17
  18. 18Proxy and ReflectIntercept reads, writes and deletes in JavaScript with Proxy, and let Reflect do the default behaviour, using a validated user object.Lesson 18
  19. 19Events with EventEmitterConnect parts of a Node program with EventEmitter: emit, on, once, multiple listeners and the special error event.Lesson 19
  20. 20Project: an order queueFinal JavaScript project: an order queue that combines classes with private fields, EventEmitter events and async/await processing.Lesson 20