# You Don't Know JS Yet ## Docs - [Introduction](https://mintlify.wiki/getify/You-Dont-Know-JS/introduction.md): Welcome to You Don't Know JS Yet - A deep dive into the core mechanisms of JavaScript - [Preface](https://mintlify.wiki/getify/You-Dont-Know-JS/preface.md): The motivations, philosophy, and approach behind the You Don't Know JS Yet book series - [Get Started](https://mintlify.wiki/getify/You-Dont-Know-JS/get-started/index.md): Begin your journey to truly knowing JavaScript with this foundational book that builds a solid understanding of the core language. - [Foreword](https://mintlify.wiki/getify/You-Dont-Know-JS/get-started/foreword.md): Brian Holt shares his perspective on discovering he didn't know JavaScript—and why this book series is essential for all developers. - [Chapter 1: What Is JavaScript?](https://mintlify.wiki/getify/You-Dont-Know-JS/get-started/ch1.md): Build a foundation for understanding JavaScript's identity, how it's organized and maintained, and the core characteristics that define the language. - [Chapter 2: Surveying JS](https://mintlify.wiki/getify/You-Dont-Know-JS/get-started/ch2.md): Survey the major syntax, patterns, and behaviors of JavaScript to build confidence in writing your own programs. - [Chapter 3: Digging to the Roots of JS](https://mintlify.wiki/getify/You-Dont-Know-JS/get-started/ch3.md): Explore the lower-level root characteristics of JavaScript including iteration, closure, this, and prototypes that underpin virtually every line of code. - [Chapter 4: The Bigger Picture](https://mintlify.wiki/getify/You-Dont-Know-JS/get-started/ch4.md): See how JavaScript is organized into three main pillars and get a roadmap for the rest of the You Don't Know JS Yet series. - [Appendix A: Exploring Further](https://mintlify.wiki/getify/You-Dont-Know-JS/get-started/appendix-a.md): Dive deeper into values vs references, function forms, coercive comparisons, and prototypal classes. - [Appendix B: Practice, Practice, Practice!](https://mintlify.wiki/getify/You-Dont-Know-JS/get-started/appendix-b.md): Practice exercises to solidify your understanding of comparisons, closure, and prototypes with suggested solutions. - [Scope & Closures](https://mintlify.wiki/getify/You-Dont-Know-JS/scope-closures/index.md): Deep dive into JavaScript's scope system, closures, and the module pattern - [Foreword](https://mintlify.wiki/getify/You-Dont-Know-JS/scope-closures/foreword.md): Foreword by Sarah Drasner, Head of Developer Experience at Netlify - [Chapter 1: What's the Scope?](https://mintlify.wiki/getify/You-Dont-Know-JS/scope-closures/ch1.md): Understanding how JavaScript's compilation process determines scope and variable access - [Chapter 2: Illustrating Lexical Scope](https://mintlify.wiki/getify/You-Dont-Know-JS/scope-closures/ch2.md): Building mental models of scope through metaphors like marbles, buckets, and bubbles - [Chapter 3: The Scope Chain](https://mintlify.wiki/getify/You-Dont-Know-JS/scope-closures/ch3.md): Explore how nested scopes create a scope chain, understand shadowing, and learn how JavaScript determines variable access through the chain. - [Chapter 4: Around the Global Scope](https://mintlify.wiki/getify/You-Dont-Know-JS/scope-closures/ch4.md): Understand the global scope in JavaScript, how it differs across environments (browser, Node, Web Workers), and how to access the global scope object. - [Chapter 5: The (Not So) Secret Lifecycle of Variables](https://mintlify.wiki/getify/You-Dont-Know-JS/scope-closures/ch5.md): Explore hoisting, the Temporal Dead Zone (TDZ), variable re-declaration, and understand when variables become available in their scope. - [Chapter 6: Limiting Scope Exposure](https://mintlify.wiki/getify/You-Dont-Know-JS/scope-closures/ch6.md): Learn the Principle of Least Exposure (POLE), understand function and block scoping, and discover when to use var vs. let in your programs. - [Chapter 7: Using Closures](https://mintlify.wiki/getify/You-Dont-Know-JS/scope-closures/ch7.md): Master closure in JavaScript - understand how functions remember their outer variables, manage memory with garbage collection, and use closure to improve code organization. - [Chapter 8: The Module Pattern](https://mintlify.wiki/getify/You-Dont-Know-JS/scope-closures/ch8.md): Learn how modules embody scope and closure, explore classic modules, Node CommonJS, and modern ES Modules (ESM) to organize your JavaScript programs. - [Appendix A: Exploring Further](https://mintlify.wiki/getify/You-Dont-Know-JS/scope-closures/appendix-a.md): Dive deeper into JavaScript scope nuances - implied scopes, anonymous vs named functions, hoisting, var vs let debate, TDZ origins, and more advanced topics. - [Appendix B: Practice](https://mintlify.wiki/getify/You-Dont-Know-JS/scope-closures/appendix-b.md): Test your knowledge with hands-on exercises covering scope chains, closures, and modules. Includes suggested solutions to help you master JavaScript scope concepts. - [Objects & Classes](https://mintlify.wiki/getify/You-Dont-Know-JS/objects-classes/index.md): Explore JavaScript's object mechanism, prototypes, classes, and the this keyword in this comprehensive guide to objects and class-oriented design in JavaScript. - [Foreword](https://mintlify.wiki/getify/You-Dont-Know-JS/objects-classes/foreword.md): Foreword by Rick Waldron for You Don't Know JS Yet: Objects & Classes - [Chapter 1: Object Foundations](https://mintlify.wiki/getify/You-Dont-Know-JS/objects-classes/ch1.md): Understanding JavaScript objects as containers for multiple values, including property definition, access patterns, and fundamental object operations. - [Chapter 2: How Objects Work](https://mintlify.wiki/getify/You-Dont-Know-JS/objects-classes/ch2.md): Understanding property descriptors, the Metaobject Protocol (MOP), object characteristics, and the prototype chain in JavaScript. - [Chapter 3: Classy Objects](https://mintlify.wiki/getify/You-Dont-Know-JS/objects-classes/ch3.md): Explore ES6 classes, inheritance, static methods, private members, and how class syntax builds on JavaScript's prototypal foundation. - [Chapter 4: This Works](https://mintlify.wiki/getify/You-Dont-Know-JS/objects-classes/ch4.md): Master the this keyword in JavaScript - understand context binding rules, arrow functions, explicit vs implicit assignment, and how this enables dynamic behavior. - [Chapter 5: Delegation](https://mintlify.wiki/getify/You-Dont-Know-JS/objects-classes/ch5.md): Discover delegation as an alternative to class-orientation - learn to compose peer objects through prototypes and dynamic this context for flexible, powerful code organization. - [Types & Grammar](https://mintlify.wiki/getify/You-Dont-Know-JS/types-grammar/index.md): Understanding JavaScript's type system, primitive values, coercion, and how to write type-aware code - [Foreword](https://mintlify.wiki/getify/You-Dont-Know-JS/types-grammar/foreword.md): Foreword for You Don't Know JS Yet - Types & Grammar - [Chapter 1: Primitive Values](https://mintlify.wiki/getify/You-Dont-Know-JS/types-grammar/ch1.md): Understanding JavaScript's 7 primitive value types and how they differ from objects - [Chapter 2: Primitive Behaviors](https://mintlify.wiki/getify/You-Dont-Know-JS/types-grammar/ch2.md): Understanding how primitive values behave in JavaScript, including immutability, string operations, and number behaviors - [Chapter 3: Object Values](https://mintlify.wiki/getify/You-Dont-Know-JS/types-grammar/ch3.md): Understanding object types in JavaScript including plain objects, arrays, functions, and fundamental objects - [Chapter 4: Coercing Values](https://mintlify.wiki/getify/You-Dont-Know-JS/types-grammar/ch4.md): Master JavaScript's type coercion system - both explicit and implicit forms - and learn to write truly type-aware code - [Contributing](https://mintlify.wiki/getify/You-Dont-Know-JS/contributing.md): Learn about contributing to the You Don't Know JS Yet book series - [First Edition](https://mintlify.wiki/getify/You-Dont-Know-JS/first-edition.md): Access the original first edition of the You Don't Know JS book series