Learn JavaScript
- Lessons
- 59
- Modules out
- 7 of 19
- Parts
- 6
Who can read what
- Free · 34
- Anyone can read it, signed in or not.
- Free with an account · 10
- Free to read once you have an account.
- Pro · 15
- Included with this track or with Learn Pro.
Learn Pro
Every track, one subscription
Every track's Pro lessons and projects
৳6,999 a year
By card: $9 a month or $59 a year.
What is inside
19 modules in 6 parts, 7 of them out so far. Lessons with no mark are free to read.
Part Zero
What JavaScript is
- 1What JavaScript Is (and Why It Is Not Java)Reading
- 2Where It Runs: Browser, Server, Phone, DesktopReading
- 3The Job Market, Honestly: What JavaScript Gets You and What It Does NotReading
- 4How the Engine Runs Your Code: Parse, Bytecode, JITReading
- 5Your First Run: The Console, Node, and the PlaygroundReading
- 6Module Test: What JavaScript IsModule test
- 1A Program Line by Line: console.log, Numbers and TextReading
- 2let and const: A Name for a Value, and Why Not varReading
- 3The Seven Primitives and One ObjectReading
- 4typeof, undefined and null: Asking a Value What It IsReading
- 5Reading Input: The Starter Every Problem Uses, Line by LineReading
- 6Comments, Names and Code a Human Can ReadReading
- 7Problems: First ProgramsProblems
- 8Module Test: First ProgramsModule test
Part One
The language, piece by piece
- 1Two Values Meet an Operator: The PictureReading
- 2Every Operator, One by OneReading
- 3Full Programs: Converting on PurposeReading
- 4When to Use == and When Not, and the Other Judgement CallsReading
- 5Under the Hood: The Abstract Equality Algorithm and Floating PointProReading
- 6Interview Pack: Output Puzzles, the Questions and the Bug GalleryProReading
- 7Problems: Types and CoercionProblems
- 8Cheat Sheet: Types, Operators and Coercion on One PageProReading
- 9Module Test: Types and CoercionModule test
- 1A String Is a Row of Code Units: The PictureReading
- 2Every String Method, One by OneReading
- 3Full Programs: Strings at WorkReading
- 4When to Use Which: Methods or a Loop, a Template or +, and When It Is a RegexReading
- 5Under the Hood: Immutability, Ropes and UTF-16ProReading
- 6CP and Interview Pack: String Patterns, the Questions and the Bug GalleryProReading
- 7Problems: StringsProblems
- 8Cheat Sheet: Strings on One PageProReading
- 9Module Test: StringsModule test
- 1Decisions and Loops: The PictureReading
- 2Every Statement, One by OneReading
- 3Full Programs: From FizzBuzz to a Prime SieveReading
- 4Which Loop, and When switch Beats ifReading
- 5Under the Hood: Loops as Jumps, the Iterator Protocol and a Loop LabProReading
- 6CP and Interview Pack: Nested Loops, Early Exit and the Bug GalleryProReading
- 7Problems: if, switch and LoopsProblems
- 8Cheat Sheet: if, switch and Loops on One PageProReading
- 9Module Test: if, switch and LoopsModule test
Part Two
Functions and data
- 1A Function Is a Named Recipe: The PictureReading
- 2Every Form, One by One: Declarations, Arrows, Defaults and RestFree with an accountReading
- 3Full Programs: A Small Library, Functions as Values and RecursionFree with an accountReading
- 4When to Use Which: Declaration or Arrow, a Default or a Check, Recursion or a LoopFree with an accountReading
- 5Under the Hood: The Call Stack, Frames and What a Call CostsProReading
- 6CP and Interview Pack: Recursion Patterns, Currying and the Bug GalleryProReading
- 7Problems: FunctionsFree with an accountProblems
- 8Cheat Sheet: Functions on One PageProReading
- 9Module Test: FunctionsFree with an accountModule test
- 1Where a Name Lives: Scope and Closures, the PictureReading
- 2Every Rule, One by One: Blocks, var, Hoisting and the Dead ZoneFree with an accountReading
- 3Full Programs: Counters, once, Private State and MemoiseFree with an accountReading
- 4When a Closure, When a Class, When a ModuleFree with an accountReading
- 5Under the Hood: Environment Records, V8 Contexts and a Closure Memory LabProReading
- 6CP and Interview Pack: The Loop Question, Hoisting Puzzles and the Bug GalleryProReading
- 7Problems: Scope, Hoisting and ClosuresFree with an accountProblems
- 8Cheat Sheet: Scope, Hoisting and Closures on One PageProReading
- 9Module Test: Scope, Hoisting and ClosuresFree with an accountModule test
- Module 7: Arrays and the Array Methods: The map, filter, reduce PipelineBeing written
- Module 8: Objects, Destructuring, Spread and JSONBeing written
Part Three
The parts people get wrong
Being written
- 09this, Prototypes and Classes
- 10Error Handling: throw, try, catch, finally, and Reading a Stack Trace
- 11Modules: import, export and How Files Find Each Other
- 12Async 1: Callbacks and the Event Loop
- 13Async 2: Promises, async/await and fetch
Part Four
The browser
Being written
- 14The DOM and Events: JavaScript Touches the Page
- 15Forms, Storage and Small Apps
Part Five
JavaScript in the real world (Pro)
Being written
- 16Map, Set, WeakMap, Iterators, Generators and Regular Expressions
- 17Performance, Memory, Debugging and the Interview Output Puzzles
- 18Three Projects: A Todo List, a Weather App, a Quiz Game
Learn Pro
Every track, one subscription
Every track's Pro lessons and projects
৳6,999 a year
By card: $9 a month or $59 a year.
Certificates
How certificates work
A certificate is not issued for finishing the lessons. It is issued on a Skill Test.
Timed, in the browser
Questions are drawn at random from a large pool, and the clock runs from the first one.
Your code, hidden tests
Your code runs against tests you cannot see, and submissions are compared for similarity afterwards.
A score, not a tick
The score, 0 to 1000, is printed on the certificate with the band it falls in.
Not proctored, and it says so. Identity is the account and the name on the certificate. There is no webcam and no ID check, and the certificate and its verify page both state that.
Score bands
Score is 0 to 1000, across three sections: concepts, read and debug, build.
- Not yetRetake0–399
- FoundationRetake400–599
- WorkingCertificate issued600–749
- ProficientCertificate issued750–899
- AdvancedCertificate issued900–1000
For employers
Hiring someone?
Every certificate has a public page carrying the score, the three sections, the date and the test version. Ask for the link, not a screenshot.
- Name
- Track
- Learn JavaScript
- Score
- / 1000, with its band
- Sections
- Concepts · Read and debug · Build
- Date, version