JavaScript Tutorial
The programming language of the web
Learn JavaScript from zero with 30 free interactive lessons. Variables, functions, arrays, objects, DOM manipulation, async/await, and modern ES6+ features.
What you'll learn
- Variables & data types
- Functions and scope
- Arrays and objects
- DOM manipulation
- Async / await & fetch
- Modern ES6+ features
Prerequisites
- Basic HTML and CSS
- Curiosity to experiment
Why learn JavaScript?
- JavaScript runs on every browser — no install needed to start
- It powers front-end frameworks (React, Vue) and back-end (Node.js)
- Most widely-used language in the world for the 11th year running
- Unlocks the playground, browser games, animations, and full apps
Course Curriculum
30 lessons · ~20 hours · self-paced
- 1
Introduction to JavaScript
What JavaScript Actually Does
- 2
JavaScript Variables & Data Types
What a Variable Really Is
- 3
JavaScript Operators
Arithmetic, and the Odd Behaviour of +
- 4
JavaScript Functions
What a Function Is, and Why You Want One
- 5
JavaScript Objects
Grouping Related Data Under One Name
- 6
JavaScript Arrays
An Ordered List of Values
- 7
JavaScript Conditionals (if/else)
Making a Decision
- 8
JavaScript Switch Statements
When a Chain of else if Becomes a Switch
- 9
JavaScript Loops
Repeating Work Without Repeating Code
- 10
JavaScript Array Methods
The Methods That Replace Loops
- 11
JavaScript String Methods
Strings Are Values You Cannot Change
- 12
JavaScript Math Object
What the Math Object Is
- 13
JavaScript Date Object
Creating a Date, and the Month Trap
- 14
JavaScript Number Methods
One Number Type for Everything
- 15
JavaScript DOM Selection
What the DOM Actually Is
- 16
DOM Manipulation
Changing Text: textContent, innerHTML and innerText
- 17
JavaScript Events
What an Event Is
- 18
Event Listeners
addEventListener in Full: the Third Argument
- 19
Form Validation
Why Validate in the Browser at All
- 20
Arrow Functions & ES6 Features
Arrow Function Syntax, Precisely
- 21
JavaScript Promises
Why Asynchronous Code Exists
- 22
Async/Await
await: Promises Without the Chain
- 23
Fetch API
What fetch Does
- 24
Working with JSON
What JSON Is, and What It Is Not
- 25
Local Storage
What Browser Storage Is
- 26
Error Handling
Errors Are Not a Failure of Your Skill
- 27
Debugging Techniques
Debugging Is a Method, Not a Talent
- 28
JavaScript Best Practices
Naming and Readability
- 29
Performance Optimization
Measure First
- 30
Final Project: To-Do Application
What You Are Building, and Why This One
From the Blog
Guides and tutorials related to JavaScript.
Ready to start?
All 30 lessons are free. No credit card. No sign-up required to read.
Start with lesson 1: Introduction to JavaScript