JS Guide
Home
Questions
Topics
Companies
Resources
Bookmarks
Search
Toggle theme
Open menu
Home
Questions
Search
Progress
Home
Topics
javascript
javascript
Core JavaScript concepts, ES6+, and language fundamentals
29
All
14
beginner
10
intermediate
5
advanced
0 of 29 topics read
0%
10 Topics
intermediate
Promises & Async/Await
intermediate
20 min
Promises represent eventual completion or failure of async operations with three states (pending, fulfilled, rejected), and async/await provides syntactic sugar for writing promise-based code that reads like synchronous code.
Closures
intermediate
12 min
A closure is a function that retains access to variables from its outer (enclosing) scope even after the outer function has returned, enabled by JavaScript's lexical scoping.
Data Structures
intermediate
7 min
ES6 introduced Map and Set as specialized alternatives to plain objects and arrays — Map allows any key type with guaranteed order, while Set stores unique values with O(1) lookups.
Modules
intermediate
7 min
ES Modules use static import/export resolved at parse time (enabling tree-shaking), while CommonJS uses dynamic require()/module.exports resolved at runtime — ESM is the modern standard, but both coexist in 2025.
Objects & Copying
intermediate
12 min
Objects are reference types — assigning or passing them shares the same memory reference. Shallow copies duplicate top-level properties while deep copies (structuredClone) create fully independent clones at all nesting levels.
Currying & Partial Application
intermediate
10 min
Currying transforms a function with multiple arguments into a sequence of single-argument functions, while partial application fixes some arguments upfront and returns a function expecting the rest.
Debounce & Throttle
intermediate
10 min
Debounce delays execution until a pause in events, while throttle limits execution to a fixed interval — both are essential for controlling high-frequency event handlers.
Event Loop & Runtime
intermediate
15 min
JavaScript is single-threaded with one call stack — the event loop enables async behavior by processing microtasks (promises) before macrotasks (setTimeout) between each cycle of the call stack.
The this Keyword
intermediate
12 min
The this keyword is dynamically bound based on how a function is called — four binding rules (new, explicit, implicit, default) determine its value, with arrow functions being the exception that inherits this lexically.
Scope & Scope Chain
intermediate
12 min
JavaScript uses lexical scoping where variable access is determined by code structure at write time — the engine walks up the scope chain from inner to outer scopes until it finds the variable or reaches the global scope.