JavaScript lesson index

Learn JavaScript lessons in order

Browse all 175 JavaScript lessons in order, from JavaScript fundamentals to DOM, browser APIs, promises, async/await, modules, classes, network requests, and regular expressions.

JavaScript course coverage

  • JavaScript fundamentals
  • objects and arrays
  • functions and closures
  • classes and prototypes
  • promises and async/await
  • DOM and browser APIs
  • network requests
  • regular expressions

175 JavaScript lessons

Part 1

The JavaScript language

  1. 1. An introduction

    1. 1.1An Introduction to JavaScript
    2. 1.2Manuals and specifications
    3. 1.3Code editors
    4. 1.4Developer console
  2. 2. JavaScript Fundamentals

    1. 2.1Hello, world!
    2. 2.2Code structure
    3. 2.3The modern mode, "use strict"
    4. 2.4Variables
    5. 2.5Data types
    6. 2.6Interaction: alert, prompt, confirm
    7. 2.7Type Conversions
    8. 2.8Basic operators, maths
    9. 2.9Comparisons
    10. 2.10Conditional branching: if, '?'
    11. 2.11Logical operators
    12. 2.12Nullish coalescing operator '??'
    13. 2.13Loops: while and for
    14. 2.14The "switch" statement
    15. 2.15Functions
    16. 2.16Function expressions
    17. 2.17Arrow functions, the basics
    18. 2.18JavaScript specials
  3. 3. Code quality

    1. 3.1Debugging in the browser
    2. 3.2Coding Style
    3. 3.3Comments
    4. 3.4Ninja code
    5. 3.5Automated testing with Mocha
    6. 3.6Polyfills and transpilers
  4. 4. Objects: the basics

    1. 4.1Objects
    2. 4.2Object references and copying
    3. 4.3Garbage collection
    4. 4.4Object methods, "this"
    5. 4.5Constructor, operator "new"
    6. 4.6Optional chaining '?.'
    7. 4.7Symbol type
    8. 4.8Object to primitive conversion
  5. 5. Data types

    1. 5.1Methods of primitives
    2. 5.2Numbers
    3. 5.3Strings
    4. 5.4Arrays
    5. 5.5Array methods
    6. 5.6Iterables
    7. 5.7Map and Set
    8. 5.8WeakMap and WeakSet
    9. 5.9Object.keys, values, entries
    10. 5.10Destructuring assignment
    11. 5.11Date and time
    12. 5.12JSON methods, toJSON
  6. 6. Advanced working with functions

    1. 6.1Recursion and stack
    2. 6.2Rest parameters and spread syntax
    3. 6.3Variable scope, closure
    4. 6.4The old "var"
    5. 6.5Global object
    6. 6.6Function object, NFE
    7. 6.7The "new Function" syntax
    8. 6.8Scheduling: setTimeout and setInterval
    9. 6.9Decorators and forwarding, call/apply
    10. 6.10Function binding
    11. 6.11Arrow functions revisited
  7. 7. Object properties configuration

    1. 7.1Property flags and descriptors
    2. 7.2Property getters and setters
  8. 8. Prototypes, inheritance

    1. 8.1Prototypal inheritance
    2. 8.2F.prototype
    3. 8.3Native prototypes
    4. 8.4Prototype methods, objects without __proto__
  9. 9. Classes

    1. 9.1Class basic syntax
    2. 9.2Class inheritance
    3. 9.3Static properties and methods
    4. 9.4Private and protected properties and methods
    5. 9.5Extending built-in classes
    6. 9.6Class checking: "instanceof"
    7. 9.7Mixins
  10. 10. Error handling

    1. 10.1Error handling, "try...catch"
    2. 10.2Custom errors, extending Error
  11. 11. Promises, async/await

    1. 11.1Introduction: callbacks
    2. 11.2Promise
    3. 11.3Promises chaining
    4. 11.4Error handling with promises
    5. 11.5Promise API
    6. 11.6Promisification
    7. 11.7Microtasks
    8. 11.8Async/await
  12. 12. Generators, advanced iteration

    1. 12.1Generators
    2. 12.2Async iteration and generators
  13. 13. Modules

    1. 13.1Modules, introduction
    2. 13.2Export and Import
    3. 13.3Dynamic imports
  14. 14. Miscellaneous

    1. 14.1Proxy and Reflect
    2. 14.2Eval: run a code string
    3. 14.3Currying
    4. 14.4Reference Type
    5. 14.5BigInt
    6. 14.6Unicode, String internals
    7. 14.7WeakRef and FinalizationRegistry

Part 2

Browser: Document, Events, Interfaces

  1. 1. Document

    1. 1.1Browser environment, specs
    2. 1.2DOM tree
    3. 1.3Walking the DOM
    4. 1.4Searching: getElement*, querySelector*
    5. 1.5Node properties: type, tag and contents
    6. 1.6Attributes and properties
    7. 1.7Modifying the document
    8. 1.8Styles and classes
    9. 1.9Element size and scrolling
    10. 1.10Window sizes and scrolling
    11. 1.11Coordinates
  2. 2. Introduction to Events

    1. 2.1Introduction to browser events
    2. 2.2Bubbling and capturing
    3. 2.3Event delegation
    4. 2.4Browser default actions
    5. 2.5Dispatching custom events
  3. 3. UI Events

    1. 3.1Mouse events
    2. 3.2Moving the mouse: mouseover/out, mouseenter/leave
    3. 3.3Drag'n'Drop with mouse events
    4. 3.4Pointer events
    5. 3.5Keyboard: keydown and keyup
    6. 3.6Scrolling
  4. 4. Forms, controls

    1. 4.1Form properties and methods
    2. 4.2Focusing: focus/blur
    3. 4.3Events: change, input, cut, copy, paste
    4. 4.4Forms: event and method submit
  5. 5. Document and resource loading

    1. 5.1Page: DOMContentLoaded, load, beforeunload, unload
    2. 5.2Scripts: async, defer
    3. 5.3Resource loading: onload and onerror
  6. 6. Miscellaneous

    1. 6.1Mutation observer
    2. 6.2Selection and Range
    3. 6.3Event loop: microtasks and macrotasks

Part 3

Additional articles

  1. 1. Frames and windows

    1. 1.1Popups and window methods
    2. 1.2Cross-window communication
    3. 1.3The clickjacking attack
  2. 2. Binary data, files

    1. 2.1ArrayBuffer, binary arrays
    2. 2.2TextDecoder and TextEncoder
    3. 2.3Blob
    4. 2.4File and FileReader
  3. 3. Network requests

    1. 3.1Fetch
    2. 3.2FormData
    3. 3.3Fetch: Download progress
    4. 3.4Fetch: Abort
    5. 3.5Fetch: Cross-Origin Requests
    6. 3.6Fetch API
    7. 3.7URL objects
    8. 3.8XMLHttpRequest
    9. 3.9Resumable file upload
    10. 3.10Long polling
    11. 3.11WebSocket
    12. 3.12Server Sent Events
  4. 4. Storing data in the browser

    1. 4.1Cookies, document.cookie
    2. 4.2LocalStorage, sessionStorage
    3. 4.3IndexedDB
  5. 5. Animation

    1. 5.1Bezier curve
    2. 5.2CSS-animations
    3. 5.3JavaScript animations
  6. 6. Web components

    1. 6.1From the orbital height
    2. 6.2Custom elements
    3. 6.3Shadow DOM
    4. 6.4Template element
    5. 6.5Shadow DOM slots, composition
    6. 6.6Shadow DOM styling
    7. 6.7Shadow DOM and events
  7. 7. Regular expressions

    1. 7.1Patterns and flags
    2. 7.2Character classes
    3. 7.3Unicode: flag "u" and class \p{...}
    4. 7.4Anchors: string start ^ and end $
    5. 7.5Multiline mode of anchors ^ $, flag "m"
    6. 7.6Word boundary: \b
    7. 7.7Escaping, special characters
    8. 7.8Sets and ranges [...]
    9. 7.9Quantifiers +, *, ? and {n}
    10. 7.10Greedy and lazy quantifiers
    11. 7.11Capturing groups
    12. 7.12Backreferences in pattern: \N and \k<name>
    13. 7.13Alternation (OR) |
    14. 7.14Lookahead and lookbehind
    15. 7.15Catastrophic backtracking
    16. 7.16Sticky flag "y", searching at position
    17. 7.17Methods of RegExp and String