JavaScript Course
JavaScript is the language of the web: it makes pages interactive, talks to servers and now runs everywhere from phones to servers. This course takes you from your very first line of code to asynchronous programming, the DOM and a complete working app — with live, editable examples on every page.
What you'll learn
The course has 60 lessons in nine parts:
- Getting Started — adding JavaScript to a page, the console, syntax, variables and data types.
- Operators & Control Flow — arithmetic, comparisons, logic, conditionals,
switchand every kind of loop. - Working with Values — strings, template literals, numbers,
Math, type conversion, truthiness, dates and regular expressions. - Functions — declarations, arrow functions, parameters, scope, closures,
thisand higher-order functions. - Arrays & Collections — array methods, iteration, sorting, destructuring,
Set,Map, iterators and generators. - Objects & Classes — objects, prototypes, classes, inheritance, private fields and JSON.
- The Browser — selecting and changing elements, events, delegation, forms, timers, storage,
fetchand browser APIs. - Asynchronous JavaScript — the event loop, promises and
async/await. - Writing Robust Code — error handling, modules, strict mode, debugging, best practices, modern features and a final project.
Examples show their real output, and every non-browser example has been run to confirm it. Most lessons include a Try it yourself editor — change the code and the result updates instantly. Browser lessons use a live mini-page you can click and type into.
No previous programming experience is needed. Knowing basic HTML and CSS helps for the browser lessons.
Practice
- Playground — a blank editor for your own experiments.
- Exercises — fill-in-the-blank tasks and coding problems with solutions.
- Quiz — test your understanding across the whole course.
- Syllabus & Study Plan — learning outcomes and a week-by-week schedule.
Lessons
Getting Started
- Introduction to JavaScript
- Adding JavaScript to a Page
- Output & the Console
- Syntax & Statements
- Variables
- Data Types
Operators & Control Flow
- Arithmetic & Assignment Operators
- Comparison & Logical Operators
- Conditionals: if, else & the Ternary
- The switch Statement
- Loops: for, while & do…while
- for…of & for…in
Working with Values
- Strings
- String Methods
- Template Literals
- Numbers
- The Math Object
- Type Conversion
- Truthiness, null & undefined
- Dates & Times
- Regular Expressions
Functions
- Functions
- Arrow Functions
- Parameters & Arguments
- Scope & Hoisting
- Closures
- this, call, apply & bind
- Callbacks & Higher-Order Functions
Arrays & Collections
- Arrays
- Array Methods
- Array Iteration Methods
- Sorting Arrays
- Destructuring, Spread & Rest
- Sets & Maps
- Iterators & Generators
Objects & Classes
- Objects
- Working with Objects
- Prototypes & Inheritance
- Classes
- Class Inheritance & Private Fields
- JSON
The Browser
- The DOM: Selecting Elements
- Changing the Page
- Events
- Event Bubbling & Delegation
- Forms & Validation
- Timers: setTimeout & setInterval
- Web Storage
- Fetch & HTTP Requests
- The Window & Browser APIs
Asynchronous JavaScript
Writing Robust Code
- Error Handling
- Modules
- Strict Mode & Common Pitfalls
- Debugging
- Best Practices & Performance
- Modern JavaScript Features
- Project: A To-Do App
Practice
Where to start: begin with Introduction and work through in order — each part builds on the ones before. When you've finished, the TypeScript course is a natural next step.