You Don't Know JS Yet: Scope & Closures

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

The worldwide best selling You Don't Know JS book series is back for a 2nd edition: You Don't Know JS Yet. All 6 books are brand new, rewritten to cover all sides of JS for 2020 and beyond. You'll still get in-depth coverage of the core language, applied in useful code organization patterns for your programs. And of course, through Kyle's unique perspective and conversational tone, explore passionate, reasoned debate of the most common questions developers face. Scope & Closures, the second book in the new edition series, dives deep into how and why to organize variables into different buckets of scope, limiting scope over-exposure and improving code maintainability. On top of lexical scope, closure empowers functions with memory, preserving variables across calls. Modules leverage scope and closures to encapsulate data and behavior. In Scope & Closures, you'll dig into: Nesting lexical scopes with functions and blocks, to limit scope exposure of variables Functions remembering variables through closure Modules, one of the most important code organization patterns in programming

Author(s): Kyle Simpson
Series: You Don't Know JS Yet
Edition: 2
Publisher: Leanpub
Year: 2020

Language: English
Commentary: True PDF
Pages: 270

Table of Contents
Foreword
Preface
The Parts
The Title?
The Mission
The Path
Chapter 1: What's the Scope?
About This Book
Compiled vs. Interpreted
Compiling Code
Compiler Speak
Cheating: Runtime Scope Modifications
Lexical Scope
Chapter 2: Illustrating Lexical Scope
Marbles, and Buckets, and Bubbles… Oh My!
A Conversation Among Friends
Nested Scope
Continue the Conversation
Chapter 3: The Scope Chain
``Lookup'' Is (Mostly) Conceptual
Shadowing
Function Name Scope
Arrow Functions
Backing Out
Chapter 4: Around the Global Scope
Why Global Scope?
Where Exactly is this Global Scope?
Global This
Globally Aware
Chapter 5: The (Not So) Secret Lifecycle of Variables
When Can I Use a Variable?
Hoisting: Yet Another Metaphor
Re-declaration?
Uninitialized Variables (aka, TDZ)
Finally Initialized
Chapter 6: Limiting Scope Exposure
Least Exposure
Hiding in Plain (Function) Scope
Scoping with Blocks
Function Declarations in Blocks (FiB)
Blocked Over
Chapter 7: Using Closures
See the Closure
The Closure Lifecycle and Garbage Collection (GC)
An Alternative Perspective
Why Closure?
Closer to Closure
Chapter 8: The Module Pattern
Encapsulation and Least Exposure (POLE)
What Is a Module?
Node CommonJS Modules
Modern ES Modules (ESM)
Exit Scope
Appendix A: Exploring Further
Implied Scopes
Anonymous vs. Named Functions
Hoisting: Functions and Variables
The Case for var
What's the Deal with TDZ?
Are Synchronous Callbacks Still Closures?
Classic Module Variations
Appendix B: Practice
Buckets of Marbles
Closure (PART 1)
Closure (PART 2)
Closure (PART 3)
Modules
Suggested Solutions