Pricing options

Explain how different pricing options might be valuable to different segments of your audience.

Course curriculum

    1. Welcome to Advanced JavaScript

    2. What this course covers

    3. Who this course is for and what you need first

    4. Setting up your tools: VS Code, Node.js, DevTools and Git

    5. How to get help during the course

    1. Chapter overview

    2. Functions are values

    3. Higher-order functions

    4. Exercise 1.1: Build your own map, filter and reduce

    5. Lexical scope and the scope chain

    6. Closures explained

    7. The var vs let loop bug

    8. IIFEs and the module pattern

    9. Exercise 1.2: A bank account with private balance

    10. Closures and memory leaks

    11. The four rules of this

    12. Losing this, and arrow vs regular functions

    13. call, apply and bind

    14. Exercise 1.3: Fix the this bugs

    15. Pure functions and immutability

    16. Currying and partial application

    17. Compose and Pipe

    18. Memoization

    19. Debounce and throttle

    20. Mini project: A smart search box

    21. Chapter Recap

    1. Chapter overview

    2. Property descriptors

    3. Getters and Setters

    4. Object.seal vs Object.freeze

    5. The prototype chain and Object.create

    6. Exercise 2.1: A tamper-proof settings object

    7. Constructor functions and new

    8. Instance vs prototype methods

    9. Inheritance by hand

    10. The four pillars of OOP

    11. Exercise 2.2: Shapes with constructor functions

    12. Classes: prototypes with nicer syntax

    13. Static methods, fields and blocks

    14. Public and private fields

    15. Extends and Super

    16. Overriding and polymorphism

    17. Exercise 2.3: Employees and payroll

    18. Instanceof and Type Checks

    19. Composition and mixins

    20. Classes vs factory functions

    21. Mini project: A shop inventory system

    22. Chapter recap

    1. Chapter overview

    2. Why write tests?

    3. The testing pyramid and unit tests

    4. Setting up Vitest

    5. Your first test file

    6. Arrange, Act, Assert

    7. Matchers: toBe, toEqual and more

    8. Exercise 3.1: Test a string toolkit

    9. Testing our Chapter 1 utilities

    10. Watch mode and code coverage

    11. Good test names and edge cases

    12. Exercise 3.2: Test your Chapter 1 toolkit

    13. Testing classes with setup hooks

    14. Table tests with it.each

    15. Spies: vi.fn and vi.spy

    16. Mocking modules with vi.mock

    17. Exercise 3.3: Fake the dependencies

    18. Fake timers: testing debounce

    19. A first look at async tests

    20. Test-driven development: red, green, refactor

    21. Avoiding brittle tests

    22. Running tests on GitHub Actions

    23. Mini project: A shopping cart, test-first

    24. Chapter recap

    1. Chapter overview

    2. What regular expressions are for

    3. Creating a regex: literal vs RegExp

    4. Regex methods: test, match, replace and more

    5. Flags

    6. Literal characters and escaping

    7. Character classes

    8. Quantifiers

    9. Anchors and word boundaries

    10. Exercise 4.1: Pattern warm-up

    11. Greedy vs lazy matching

    12. Alternation and a syntax recap

    13. Exercise 4.2: Clean up messy data

    14. Capturing groups

    15. Named and non-capturing groups

    16. Replacing with groups or a function

    17. Lookahead and lookbehind

    18. The g flag gotcha

    19. Exercise 4.3: Test-driven validators

    20. Unicode-aware patterns

    21. Practical validation patterns

    22. Parsing log lines

    23. Catastrophic backtracking and using regex wisely

    24. Mini project: A tested form validator

    25. Chapter recap

    1. Chapter overview

    2. Blocking vs non-blocking code

    3. The call stack and the runtime

    4. The call stack and the runtime

    5. The event loop explained

    6. The ordering puzzle: tasks vs microtasks

    7. Callbacks and the error-first style

    8. Callback hell

    9. Exercise 5.1: Predict, then prove

    10. Introducing promises

    11. then, catch, finally and chaining

    12. Promisifying callback APIs

    13. Common promise mistakes

    14. Exercise 5.2: Promisify and flatten

    15. async and await

    16. Error handling with try/catch

    17. Sequential vs parallel

    18. Promise.all, allSettled, race and any

    19. Top-level await and for await…of

    20. Exercise 5.3: Refactor to async/await

    21. Unhandled rejections

    22. Timeouts and AbortController

    23. Retry with exponential backoff

    24. Testing async code in Vitest

    25. Mini project: An async loading dashboard

    26. Chapter recap

About this course

  • £250.00
  • 200 lessons
  • 25 hours of video content

Discover your potential, starting today