Skip to content
ExponaBLOG
Series · Day 100 of 100

JavaScript & TypeScript

  1. 01
    Deep JavaScript still matters in the TypeScript era
    TypeScript checks your types. JavaScript runs your code.
  2. 02
    How JavaScript runs for JavaScript & TypeScript developers
    Engine, call stack, heap and event loop.
  3. 03
    Execution context and hoisting: best practices explained
    Why some variables exist before their line runs.
  4. 04
    The event loop: microtasks vs macrotasks for production
    The ordering rule behind confusing async bugs.
  5. 05
    Promise vs setTimeout: who runs first, explained simply
    A classic interview question with a practical lesson.
  6. 06
    Scope and closures for JavaScript & TypeScript developers
    Functions remember where they were created.
  7. 07
    Closures in loops: let vs var in JavaScript & TypeScript
    The bug that taught a generation about scope.
  8. 08
    'this' explained for JavaScript & TypeScript developers
    Four rules decide what 'this' is.
  9. 09
    Arrow functions and 'this': patterns, pitfalls and fixes
    Arrow functions capture 'this' from where they're defined.
  10. 10
    Prototypes and classes: a practical guide for developers
    How inheritance really works in JavaScript.
  11. 11
    Classes are syntax sugar: a hands-on guide for engineers
    Underneath, it's still prototypes.
  12. 12
    Types, equality and coercion in JavaScript & TypeScript
    Why [] + {} isn't a joke if you know the rules.
  13. 13
    Always use ===: a practical JavaScript & TypeScript guide
    Loose equality hides bugs.
  14. 14
    Objects and references: a practical guide for developers
    Copying objects is harder than it looks.
  15. 15
    Immutable updates without libraries: a step-by-step guide
    Modern JS has what you need.
  16. 16
    map, filter and reduce, done well: a step-by-step guide
    Readable data transformations.
  17. 17
    New array and object methods in JavaScript & TypeScript
    Recent additions that replace utility libraries.
  18. 18
    Promises deep dive for JavaScript & TypeScript developers
    The foundation of all async JavaScript.
  19. 19
    Error handling with async/await: lessons from production
    try/catch is back — use it well.
  20. 20
    Promise.all, allSettled, race and any: a practical guide
    Choosing the right combinator.
  21. 21
    Limit async concurrency: real-world lessons and examples
    Promise.all on 10,000 requests is a self-inflicted DDoS.
  22. 22
    ES modules vs CommonJS: a practical guide for developers
    The module systems, explained.
  23. 23
    Dynamic import() for JavaScript & TypeScript developers
    Load code only when it's needed.
  24. 24
    Memory leaks in JavaScript: patterns, pitfalls and fixes
    Garbage collection doesn't save you from everything.
  25. 25
    WeakMap and WeakRef for JavaScript & TypeScript developers
    References that don't prevent garbage collection.
  26. 26
    Error handling patterns: real-world lessons and examples
    Errors as part of your design.
  27. 27
    Use error.cause: a practical JavaScript & TypeScript guide
    Keep the original error when wrapping.
  28. 28
    Dates, Intl and Temporal: a hands-on guide for engineers
    Time is hard. Use the right tools.
  29. 29
    Format currency with Intl: practical tips and trade-offs
    Never build currency strings by hand.
  30. 30
    Modern JavaScript features worth using, explained simply
    Recent additions that make code cleaner.
  31. 31
    ?. and ?? done right: a practical guide for developers
    Two operators that removed half my null checks.
  32. 32
    Why TypeScript: a practical JavaScript & TypeScript guide
    The case I make to every team.
  33. 33
    Turn on strict mode for JavaScript & TypeScript developers
    TypeScript without strict is TypeScript with training wheels off the ground.
  34. 34
    Basic types, done right: real-world lessons and examples
    Simple choices that pay off.
  35. 35
    unknown vs any: a practical JavaScript & TypeScript guide
    any turns off type checking. unknown makes you check.
  36. 36
    Type inference: a practical JavaScript & TypeScript guide
    Write less, get more safety.
  37. 37
    The satisfies operator: a practical guide for developers
    Check a value against a type without losing its literal types.
  38. 38
    Unions and narrowing: a practical guide for developers
    Model alternatives, then narrow safely.
  39. 39
    Discriminated unions: a practical guide for developers
    The most useful TypeScript pattern.
  40. 40
    Generics fundamentals: a practical guide for developers
    Reusable code that keeps types precise.
  41. 41
    Generic constraints for JavaScript & TypeScript developers
    Limit what a generic can be.
  42. 42
    Utility types you'll use weekly: lessons from production
    Built-in type transformations.
  43. 43
    readonly and as const: a practical guide for developers
    Make immutability visible in types.
  44. 44
    Mapped types: a practical JavaScript & TypeScript guide
    Transform every property of a type.
  45. 45
    keyof and typeof for JavaScript & TypeScript developers
    Derive types from values and objects.
  46. 46
    Conditional types and infer: what developers should know
    Types that make decisions.
  47. 47
    Template literal types: a practical guide for developers
    String patterns at the type level.
  48. 48
    Type guards and assertion functions: a step-by-step guide
    Teach TypeScript what you know.
  49. 49
    Exhaustiveness checks with never: lessons from production
    Let the compiler tell you when you forgot a case.
  50. 50
    Branded types: a practical JavaScript & TypeScript guide
    Stop mixing up IDs and units.