Kiddie School
What JavaScript is, and your very first program.
Preschool: What on Earth Is JavaScript?
Before we write code, let's figure out what code even is. Seven pages, about 13 minutes.
Kindergarten: Your Coding Playground & First Program
Set up your tools, say hello to the world, and learn the grammar of JavaScript. Nine pages, about 18 minutes.
Elementary School
Variables, data types, operators, decisions and loops.
Grade 1: Variables: Boxes With Labels
Teach your program to remember things. Nine pages, about 14 minutes.
Grade 2: Data Types: What Goes in the Boxes?
Text, numbers, true and false, and two different kinds of nothing. Thirteen pages, about 17 minutes.
See the pages
- The Kinds of Things in the Boxes
- Strings: Text in Quotes
- Template Literals: The Easy Way to Build Strings
- String Superpowers
- Numbers
- The Weird Numbers: NaN, Infinity and 0.1 + 0.2
- Booleans: True or False
- undefined and null: Two Kinds of Nothing
- typeof: What's in the Box?
- Type Conversion: Changing Types on Purpose
- Type Coercion: JavaScript's Surprise Gifts
- Mini Project: The Message Analyzer
- Recap
Grade 3: Operators: Math, Comparisons & Logic
Doing things with values: adding, comparing, and combining. Eleven pages, about 14 minutes.
See the pages
- Arithmetic Operators: Math Class Is Back
- Order of Operations
- Assignment Shortcuts
- Increment and Decrement: ++ and --
- Comparison Operators
- Equality: Why === Beats ==
- Logical Operators: AND, OR, NOT
- The Math Object: A Calculator in Your Pocket
- Mini Project 1: The Pizza Party Calculator
- Mini Project 2: The Dice Roller
- Recap
Grade 4: Making Decisions: if, else & Friends
Your code learns to choose its own adventure. Eleven pages, about 13 minutes.
Grade 5: Loops: Doing Things Over and Over
Computers never get bored. Let's take advantage of that. Eleven pages, about 15 minutes.
Middle School
Functions, arrays and objects: the big three.
Grade 6: Functions: Your Own Custom Commands
Write it once, use it a thousand times. Eleven pages, about 16 minutes.
Grade 7: Arrays: Lists of Things
One variable, many values, all in a neat little row. Fourteen pages, about 16 minutes.
See the pages
- What Is an Array?
- Reading Items (and Why We Count From Zero)
- length and the Last Item
- Changing Items
- Adding and Removing Items
- Finding Things in an Array
- Slicing and Splicing
- Looping Over Arrays
- Arrays and Strings: split and join
- Combining and Copying Arrays
- Sorting Arrays (and a Sneaky Surprise)
- Arrays Inside Arrays
- Mini Project: The Shopping List Manager
- Recap
Grade 8: Objects: Describing Things With Labels
Keys, values, and the secret identity of `console.log`. Thirteen pages, about 15 minutes.
See the pages
- What Is an Object?
- Creating Objects
- Reading Properties: Dot and Bracket Notation
- Adding, Changing and Deleting Properties
- Methods: Functions Inside Objects
- A First Look at this
- Nested Objects and Arrays of Objects
- Looping Over Objects
- Shortcuts: Shorthand and Destructuring
- Copying Objects (and the Reference Trap)
- JSON: Objects as Text
- Mini Project: The Report Card Generator
- Recap
Summer School
Bugs, errors, and how to squash them.
Summer School: Debugging: Becoming a Bug Detective
Errors aren't failures. They're clues. Eleven pages, about 18 minutes.
High School
Closures, array power tools, the DOM, events and modern JS.
Grade 9: Scope, Hoisting & Closures
Who can see what, and the function that never forgets. Eleven pages, about 14 minutes.
Grade 10: Array Power Tools: map, filter & reduce
Why write a loop when one line will do? Twelve pages, about 14 minutes.
See the pages
- Callbacks: Functions as Ingredients
- forEach: Loop Without the Loop
- map: Transform Every Item
- filter: Keep Only Some
- find and findIndex: Get the First Match
- some and every: Yes-or-No Questions
- reduce: Boil It Down to One Value
- sort With a Comparator (Finally Explained)
- Chaining: Building a Data Pipeline
- Other Handy Array Tricks
- Mini Project: The Movie Night Dashboard
- Recap
Grade 11: The DOM: Taking Control of Web Pages
Reach into a web page and change anything you like. Ten pages, about 13 minutes.
Grade 12: Events: Making Pages React
Clicks, keys, forms, and a page that remembers you. Nine pages, about 15 minutes.
Grade 13: Modern JavaScript Power-Ups
Small bits of syntax that make a big difference. Twelve pages, about 14 minutes.
College
Async code, classes, modules and real projects.
Freshman Year: Asynchronous JavaScript: Waiting Without Freezing
Timers, promises, async/await and fetching data from the internet. Ten pages, about 18 minutes.
See the pages
- Synchronous vs Asynchronous
- Timers: setTimeout and setInterval
- Callbacks and the Pyramid of Doom
- Promises: An IOU for a Future Value
- async and await: Code That Reads Like a Story
- Doing Things in Parallel: Promise.all
- Fetching Data From the Internet
- The Event Loop: How It All Works
- Mini Project: The Burger Kitchen Simulator
- Recap
Sophomore Year: Classes & Object-Oriented JavaScript
Blueprints, cookie cutters, and the mystery of `this` solved. Eleven pages, about 16 minutes.
Junior Year: Modules, Node.js & npm: Working Like a Pro
Split your code into files, run it anywhere, and borrow from millions of packages. Eleven pages, about 17 minutes.
Senior Year: Capstone Projects: Build Real Apps
Three complete projects. Everything you've learned, working together. Seven pages, about 26 minutes.
Graduation
What to do after the last grade.
Graduation: Graduation and beyond
Five pages, about 8 minutes.
Keep these open
The glossary
76 programming words, from API to variable, in plain English.
The cheat sheet
The syntax you’ll look up most, on one page: variables, loops, functions, arrays, objects and more.
Reading is step one
CurlyScript turns these notes into a game: short questions, an explanation after every answer, and a test at the end of each grade. Free, with nothing to sign up for.