JavaScript is the most widely deployed programming language in the world, powering everything from browser interfaces to server-side backends, mobile applications, and embedded systems.
The language continues to dominate the developer landscape with TypeScript adoption at 78%, a thriving ecosystem of runtimes, and deep integration with AI-assisted development workflows. Yet despite its ubiquity, JavaScript remains one of the most misunderstood languages — precisely because it is so easy to start with. Developers often learn just enough to get by, skipping the core mechanisms that determine how the language actually behaves under the hood.
This gap between surface-level familiarity and genuine understanding is what makes the “You Don’t Know JS” series by Kyle Simpson so valuable. It does not teach you how to copy and paste code. It teaches you how the language works at a fundamental level so that you can write better code, debug with confidence, and stop being surprised by JavaScript’s behavior.
About the book
You Don’t Know JS is a six-volume book series that dives deep into the trickiest parts of the JavaScript language. The first edition, collected here in a single PDF, covers everything from basic programming concepts to advanced topics like closures, prototypes, asynchronous programming, and ES6 features.
Each volume was originally published by O’Reilly Media, and the entire collection is now available under a Creative Commons license.
The series assumes you have some prior exposure to programming — even a little is enough. It is written for developers who have used JavaScript but feel there are parts of the language they do not fully understand. If you have ever been confused by the this keyword, struggled with closures, or wondered how promises actually work, this book is for you.
What you will learn
The book covers the full spectrum of JavaScript’s core mechanics through six focused volumes:
- Up & Going — A gentle introduction to programming fundamentals and JavaScript’s basic building blocks: variables, types, operators, conditionals, loops, and functions.
- Scope & Closures — A deep exploration of lexical scope, function scope, block scope, hoisting, and the closure pattern that makes JavaScript unique.
- this & Object Prototypes — How the this binding works, the nature of objects, prototype chains, behavior delegation, and the class syntax in ES6.
- Types & Grammar — JavaScript’s type system, native types, type coercion, and the grammar rules that govern how your code is interpreted.
- Async & Performance — Callbacks, promises, generators, web workers, and techniques for writing performant asynchronous code.
- ES6 & Beyond — New syntax features, block-scoped variables, arrow functions, collections, proxies, reflect, and a glimpse at what came after ES6.
Table of contents
- Introduction
- Volume 1: Up & Going
- Into Programming
- Into JavaScript
- Into YDKJS
- Volume 2: Scope & Closures
- What is Scope?
- Lexical Scope
- Function vs. Block Scope
- Hoisting
- Scope Closure
- Dynamic Scope, Polyfilling Block Scope, Lexical-this
- Volume 3: this & Object Prototypes
- this Or That?
- this All Makes Sense Now!
- Objects
- Mixing (Up) Class Objects
- Prototypes
- Behavior Delegation
- ES6 Class
- Volume 4: Types & Grammar
- Types
- Values
- Natives
- Coercion
- Grammar
- Mixed Environment JavaScript
- Volume 5: Async & Performance
- Asynchrony: Now & Later
- Callbacks
- Promises
- Generators
- Program Performance
- Benchmarking & Tuning
- asynquence Library
- Advanced Async Patterns
- Volume 6: ES6 & Beyond
- ES? Now & Future
- Syntax
- Organization
- Async Flow Control
- Collections
- API Additions
- Meta Programming
- Beyond ES6
Book details
- Title: You Don’t Know JS (book series) – First Edition
- Author(s): Kyle Simpson
- Publication year: 2015-2016
- Publisher: O’Reilly Media
- Pages: 989
- PDF size: 4.19 MB
- Estimated reading time: ~24 h 44 min
- Level: Intermediate
- Main category: Programming
- Subcategory: JavaScript
- Language: English
- License: Creative Commons Attribution-NonCommercial-NoDerivs 4.0 Unported (CC BY-NC-ND 4.0)
More books in: JavaScript, Programming
Legal notice: This book is shared for educational purposes only. The content is distributed under Creative Commons licenses or with explicit permission from the author. FreeProgrammingBooks may host files that comply with their respective licenses.