You Don't Know JS Yet
Kyle Simpson's book series on how JavaScript actually works, free to read on GitHub, covering scope, closures, the object system and types in real depth. It is for developers who already write JavaScript every day and keep hitting behaviour they cannot explain. Read it when you want to understand the rules behind closures, this and coercion instead of memorising workarounds.
185k
GitHub (getify/You-Dont-Know-JS) · Sept 2026
33.4k
GitHub · Sept 2026
January 2026
GitHub · Sept 2026
2nd edition (complete)
Repository README · Sept 2026
GitHub repo
Web Development
Kyle Simpson
2 to 4 months
Advanced
Free
What is in the series now
The GitHub repository holds the second edition, which Kyle Simpson has declared complete and closed to further contributions after an 11 year journey. The books are free to read online in the repository, and the author recommends reading them in this order:
- Get Started: an orientation to the language and the ideas the rest of the series builds on. Also sold as a print and ebook.
- Scope and Closures: how lexical scope works, how variables are resolved, and what closures really are. Also sold as a print and ebook.
- Objects and Classes: this, prototypes and the class system. A stable draft.
- Types and Grammar: values, coercion and the grammar rules that cause surprising results. A rough draft.
The two drafts are also collected in an ebook called The Unbooks. The planned second edition books on sync and async and on ES.Next were cancelled. The first edition, which included books on async and performance and on ES6 and beyond, is still available on a separate branch of the same repository, though parts of it predate current JavaScript.
How popular it is
It is one of the most starred repositories on GitHub: about 185k stars and 33k forks as of September 2026. The last commit was in January 2026, which fits a finished series rather than an abandoned one.
Who it is for, and who should wait
This is not a way to learn JavaScript from zero. If you are still getting comfortable with functions, arrays and objects, a beginner course will serve you better. Come back once you are building things and the language starts surprising you: a comparison that behaves oddly, this pointing somewhere unexpected, a variable that seems to exist before it is declared.
It is especially useful before technical interviews that probe language fundamentals, and for developers moving from another language who want to understand JavaScript on its own terms rather than by analogy.
How to read it
- Start with Scope and Closures if you only read one. It changes the most for the most people, stands alone, and makes a lot of framework code (hooks, callbacks, module patterns) easier to reason about.
- Read with a console open and run every snippet. Change it and predict the result before running it again.
- Read Objects and Classes next if you work with classes or are confused by this. Read Types and Grammar if coercion and equality rules trip you up.
- Expect a few weeks per book at a steady pace. The series is dense, and skimming defeats the purpose.
- After each chapter, explain one idea in your own words, in a note or to a friend. If you cannot, reread it.
Weak spots to know about
- Strong opinions. The author argues, for example, for using == in cases many style guides forbid. The reasoning is careful, but your team's conventions may differ, so learn the reasoning and then follow your codebase.
- No async in the current edition. Promises and async/await are not covered in the second edition, so pair it with a dedicated resource on asynchronous JavaScript, or read the first edition's async book knowing it is older.
- Two books are drafts. Objects and Classes is stable, while Types and Grammar is a rough draft, so expect some unevenness.
Common questions
Is it really free? Yes. Every book is free to read in the repository. Print and ebook versions are for people who prefer them or want to support the author.
Should I read the first or second edition? The second, for everything it covers. Use the first edition only for async and performance topics.
How long does the series take? A few weeks per book for most readers, so two to four months for the whole set at a steady pace.
Best for: working developers who want to stop guessing about their main language.
Ready to start?
Opens on Kyle Simpson in a new tab.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.