Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/5c8wamucvfketshf1eyrw254gz94jwre.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5c8wamucvfketshf1eyrw254gz94jwre
4 changes: 2 additions & 2 deletions docs/concepts/algorithms-big-o.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Algorithms & Big O: Measuring Code Performance in JavaScript"
title: "Algorithms & Big O"
sidebarTitle: "Algorithms & Big O: Measuring Code Performance"
description: "Learn Big O notation and algorithms in JavaScript. Understand time complexity, implement searching and sorting algorithms, and recognize common interview patterns."
description: "Learn Big O notation and algorithms in JavaScript. Understand time complexity, searching, sorting, and common interview patterns."
---

Why does one solution pass all tests instantly while another times out? Why do interviewers care so much about "time complexity"? Consider these two functions that both find if an array contains duplicates:
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/async-await.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "async/await: Writing Async Code That Looks Synchronous in JavaScript"
title: "async/await"
sidebarTitle: "async/await: Writing Async Code That Looks Synchronous"
description: "Learn async/await in JavaScript. Syntactic sugar over Promises that makes async code readable. Covers error handling with try/catch, parallel execution with Promise.all, and common pitfalls."
description: "Learn async/await in JavaScript. Write cleaner async code with try/catch error handling, Promise.all for parallel execution, and more."
---

Why does asynchronous code have to look so complicated? What if you could write code that fetches data from a server, waits for user input, or reads files, all while looking as clean and readable as regular synchronous code?
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/call-stack.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Call Stack: How Function Execution Works in JavaScript"
title: "Call Stack"
sidebarTitle: "Call Stack: How Function Execution Works"
description: "Learn how the JavaScript call stack tracks function execution. Understand stack frames, LIFO ordering, execution contexts, stack overflow errors, and debugging with stack traces."
description: "Learn how the JavaScript call stack works. Understand stack frames, LIFO ordering, execution contexts, and stack overflow errors."
---

How does JavaScript keep track of which function is running? When a function calls another function, how does JavaScript know where to return when that function finishes?
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/callbacks.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Callbacks: The Foundation of Async JavaScript"
title: "Callbacks"
sidebarTitle: "Callbacks: The Foundation of Async"
description: "Learn JavaScript callbacks, functions passed to other functions to be called later. Understand sync vs async callbacks, error-first patterns, callback hell, and why Promises were invented."
description: "Learn JavaScript callbacks. Understand sync vs async callbacks, error-first patterns, callback hell, and why Promises were invented."
---

Why doesn't JavaScript wait? When you set a timer, make a network request, or listen for a click, how does your code keep running instead of freezing until that operation completes?
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/clean-code.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Clean Code: Writing Readable JavaScript"
title: "Clean Code"
sidebarTitle: "Clean Code: Writing Readable JavaScript"
description: "Learn clean code principles for JavaScript. Covers meaningful naming, small functions, DRY, avoiding side effects, and best practices to write maintainable code."
description: "Learn clean code principles for JavaScript. Meaningful naming, small functions, DRY, and best practices for maintainable code."
---

Why do some codebases feel like a maze while others read like a well-written story? What makes code easy to change versus code that makes you want to rewrite everything from scratch?
Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/currying-composition.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Currying & Composition: Functional Patterns in JavaScript"
title: "Currying & Composition"
sidebarTitle: "Currying & Composition: Functional Patterns"
description: "Learn currying and function composition in JavaScript. Build reusable functions from simple pieces using curry, compose, and pipe for cleaner, modular code."
---
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/data-structures.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Data Structures: Organizing and Storing Data in JavaScript"
title: "Data Structures"
sidebarTitle: "Data Structures: Organizing and Storing Data"
description: "Learn JavaScript data structures from built-in Arrays, Objects, Maps, and Sets to implementing Stacks, Queues, and Linked Lists. Understand when to use each structure."
description: "Learn JavaScript data structures: Arrays, Objects, Maps, Sets, Stacks, Queues, and Linked Lists. Know when to use each one."
---

Why does finding an item in an array take longer as it grows? Why can you look up an object property instantly regardless of how many properties it has? The answer lies in **data structures**.
Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/design-patterns.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Design Patterns: Reusable Solutions to Common Problems in JavaScript"
title: "Design Patterns"
sidebarTitle: "Design Patterns: Reusable Solutions"
description: "Learn JavaScript design patterns like Module, Singleton, Observer, Factory, Proxy, and Decorator. Understand when to use each pattern and avoid common pitfalls."
---
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/dom.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "DOM: How Browsers Represent Web Pages in JavaScript"
title: "DOM Manipulation"
sidebarTitle: "DOM: How Browsers Represent Web Pages"
description: "Learn how the DOM works in JavaScript. Understand how browsers represent HTML as a tree, select and manipulate elements, traverse nodes, and optimize rendering performance."
description: "Learn the DOM in JavaScript. Select and manipulate elements, traverse nodes, handle events, and optimize rendering performance."
---

How does JavaScript change what you see on a webpage? How do you click a button and see new content appear, or type in a form and watch suggestions pop up? How does a "dark mode" toggle instantly transform an entire page?
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/equality-operators.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Equality Operators: == vs === Type Checking in JavaScript"
title: "Equality: == vs ==="
sidebarTitle: "Equality Operators: == vs === Type Checking"
description: "Learn JavaScript equality operators == vs ===, typeof quirks, and Object.is(). Understand type coercion, why NaN !== NaN, and why typeof null returns 'object'."
description: "Learn JavaScript equality: == vs ===, typeof quirks, and Object.is(). Understand type coercion and why NaN !== NaN."
---

Why does `1 == "1"` return `true` but `1 === "1"` return `false`? Why does `typeof null` return `"object"`? And why is `NaN` the only value in JavaScript that isn't equal to itself?
Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/error-handling.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Error Handling: Managing Errors Gracefully in JavaScript"
title: "Error Handling"
sidebarTitle: "Error Handling: Managing Errors Gracefully"
description: "Learn JavaScript error handling with try/catch/finally. Understand Error types, custom errors, async error patterns, and best practices for robust code."
---
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/es-modules.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "ES Modules: JavaScript's Native Module System"
title: "ES Modules"
sidebarTitle: "ES Modules: Native Module System"
description: "Learn ES Modules in JavaScript. Understand import/export syntax, why ESM beats CommonJS, live bindings, dynamic imports, top-level await, and how modules enable tree-shaking."
description: "Learn ES Modules in JavaScript. Understand import/export, live bindings, dynamic imports, top-level await, and tree-shaking."
---

Why does Node.js have two different module systems? Why can bundlers remove unused code from ES Modules but not from CommonJS? And why do some imports need curly braces while others don't?
Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/event-loop.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Event Loop: How Async Code Actually Runs in JavaScript"
title: "Event Loop"
sidebarTitle: "Event Loop: How Async Code Actually Runs"
description: "Learn how the JavaScript event loop handles async code. Understand the call stack, task queue, microtasks, and why Promises always run before setTimeout()."
---
Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/factories-classes.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Factories and Classes: Creating Objects Efficiently in JavaScript"
title: "Factories & Classes"
sidebarTitle: "Factories and Classes: Creating Objects Efficiently"
description: "Learn JavaScript factory functions and ES6 classes. Understand constructors, prototypes, private fields, inheritance, and when to use each pattern."
---
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/generators-iterators.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Generators & Iterators: Pausable Functions in JavaScript"
title: "Generators & Iterators"
sidebarTitle: "Generators & Iterators: Pausable Functions"
description: "Learn JavaScript generators and iterators. Understand yield, the iteration protocol, lazy evaluation, infinite sequences, and async generators with for await...of."
description: "Learn JavaScript generators and iterators. Understand yield, lazy evaluation, infinite sequences, and async generators."
---

What if a function could pause mid-execution, return a value, and then resume right where it left off? What if you could create a sequence of values that are computed only when you ask for them — not all at once?
Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/higher-order-functions.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Higher-Order Functions: Functions That Use Functions in JavaScript"
title: "Higher-Order Functions"
sidebarTitle: "Higher-Order Functions: Functions That Use Functions"
description: "Learn higher-order functions in JavaScript. Understand functions that accept or return other functions, create reusable abstractions, and write cleaner code."
---
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/http-fetch.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Fetch API: Making HTTP Requests the Modern Way in JavaScript"
title: "HTTP & Fetch API"
sidebarTitle: "Fetch API: Making HTTP Requests the Modern Way"
description: "Learn how to make HTTP requests with the JavaScript Fetch API. Understand GET, POST, response handling, JSON parsing, error patterns, and AbortController for cancellation."
description: "Learn the JavaScript Fetch API for HTTP requests. Covers GET, POST, response handling, JSON parsing, and AbortController."
---

How does JavaScript get data from a server? How do you load user profiles, submit forms, or fetch the latest posts from an API? The answer is the **[Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)**, JavaScript's modern way to make network requests.
Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/iife-modules.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "IIFE, Modules & Namespaces: Structuring Code in JavaScript"
title: "IIFE & Namespaces"
sidebarTitle: "IIFE, Modules & Namespaces: Structuring Code"
description: "Learn how to organize JavaScript code with IIFEs, namespaces, and ES6 modules. Understand private scope, exports, dynamic imports, and common module mistakes."
---
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/inheritance-polymorphism.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Inheritance & Polymorphism: OOP Principles in JavaScript"
title: "Inheritance & Polymorphism"
sidebarTitle: "Inheritance & Polymorphism: OOP Principles"
description: "Learn inheritance and polymorphism in JavaScript — extending classes, prototype chains, method overriding, and code reuse patterns. Master object-oriented programming principles."
description: "Learn inheritance and polymorphism in JavaScript. Extend classes, use prototype chains, override methods, and master OOP patterns."
---

How do game developers create hundreds of character types without copy-pasting the same code over and over? How can a Warrior, Mage, and Archer all "attack" differently but be treated the same way in battle?
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/javascript-engines.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "JavaScript Engines: How V8 Runs Your Code in JavaScript"
title: "JavaScript Engines"
sidebarTitle: "JavaScript Engines: How V8 Runs Your Code"
description: "Learn how JavaScript engines work. Understand V8's architecture, parsing, compilation, JIT optimization, hidden classes, inline caching, and garbage collection."
description: "Learn how JavaScript engines work. Understand V8's parsing, JIT compilation, hidden classes, inline caching, and garbage collection."
---

What happens when you run JavaScript code? How does a browser turn `const x = 1 + 2` into something your computer actually executes? When you write a function, what transforms those characters into instructions your CPU understands?
Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/map-reduce-filter.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "map, reduce, filter: Transform Arrays in JavaScript"
title: "map, reduce, filter"
sidebarTitle: "map, reduce, filter"
description: "Learn map, reduce, and filter in JavaScript. Transform, filter, and combine arrays without mutation. Includes method chaining and common pitfalls."
---
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/modern-js-syntax.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Modern JavaScript Syntax: ES6+ Features That Changed Everything"
title: "Modern JS Syntax (ES6+)"
sidebarTitle: "Modern JavaScript Syntax: ES6+ Features"
description: "Learn modern JavaScript ES6+ syntax. Covers destructuring, spread/rest operators, arrow functions, optional chaining, nullish coalescing, and template literals with practical examples."
description: "Learn ES6+ JavaScript syntax: destructuring, spread/rest, arrow functions, optional chaining, nullish coalescing, and template literals."
---

Why does JavaScript code written in 2015 look so different from code written today? How do developers write such concise, readable code without all the boilerplate?
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/object-creation-prototypes.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Object Creation & Prototypes: How Objects Inherit in JavaScript"
title: "Prototypes & Object Creation"
sidebarTitle: "Object Creation & Prototypes: How Objects Inherit"
description: "Learn JavaScript's prototype chain and object creation. Understand how inheritance works, the new operator's 4 steps, Object.create(), Object.assign(), and prototype methods."
description: "Learn JavaScript prototypes and object creation. Understand the prototype chain, new operator, Object.create(), and inheritance."
---

How does a plain JavaScript object know about methods like `.toString()` or `.hasOwnProperty()` that you never defined? How does JavaScript let objects inherit from other objects without traditional classes?
Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/primitive-types.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Primitive Types: Building Blocks of Data in JavaScript"
title: "Primitive Types"
sidebarTitle: "Primitive Types: Building Blocks of Data"
description: "Learn JavaScript's 7 primitive types: string, number, bigint, boolean, undefined, null, and symbol. Understand immutability, typeof quirks, and autoboxing."
---
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/promises.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Promises: Managing Async Operations in JavaScript"
title: "Promises"
sidebarTitle: "Promises: Managing Async Operations"
description: "Learn JavaScript Promises for handling async operations. Understand how to create, chain, and combine Promises, handle errors properly, and avoid common pitfalls."
description: "Learn JavaScript Promises. Create, chain, and combine Promises, handle errors properly, and avoid common async pitfalls."
---

What if you could represent a value that doesn't exist yet? What if instead of deeply nested callbacks, you could write asynchronous code that reads almost like synchronous code?
Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/pure-functions.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Pure Functions: Writing Predictable Code in JavaScript"
title: "Pure Functions"
sidebarTitle: "Pure Functions: Writing Predictable Code"
description: "Learn pure functions in JavaScript. Understand the two rules of purity, avoid side effects, and write testable, predictable code with immutable patterns."
---
Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/recursion.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Recursion: Functions That Call Themselves in JavaScript"
title: "Recursion"
sidebarTitle: "Recursion: Functions That Call Themselves"
description: "Learn recursion in JavaScript. Understand base cases, recursive calls, the call stack, and patterns like factorial, tree traversal, and memoization."
---
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/regular-expressions.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Regular Expressions: Pattern Matching in JavaScript"
title: "Regular Expressions"
sidebarTitle: "Regular Expressions: Pattern Matching"
description: "Learn regular expressions in JavaScript. Covers pattern syntax, character classes, quantifiers, flags, capturing groups, and methods like test, match, and replace."
description: "Learn regular expressions in JavaScript. Pattern syntax, character classes, quantifiers, flags, and methods like test and match."
---

How do you check if an email address is valid? How do you find and replace all phone numbers in a document? How can you extract hashtags from a tweet?
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/scope-and-closures.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Scope and Closures: How Variables Really Work in JavaScript"
title: "Scope & Closures"
sidebarTitle: "Scope and Closures: How Variables Really Work"
description: "Learn JavaScript scope and closures. Understand the three types of scope, var vs let vs const, lexical scoping, the scope chain, and closure patterns for data privacy."
description: "Learn JavaScript scope and closures. Understand var vs let vs const, lexical scoping, the scope chain, and closure patterns."
---

Why can some variables be accessed from anywhere in your code, while others seem to disappear? How do functions "remember" variables from their parent functions, even after those functions have finished running?
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/this-call-apply-bind.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "this, call, apply, and bind: How Context Works in JavaScript"
title: "this, call, apply & bind"
sidebarTitle: "this, call, apply, and bind: How Context Works"
description: "Learn how JavaScript's 'this' keyword works and how to control context binding. Understand the 5 binding rules, call/apply/bind methods, arrow functions, and common pitfalls."
description: "Learn JavaScript's 'this' keyword and context binding. Master the 5 binding rules, call/apply/bind methods, and arrow functions."
---

Why does `this` sometimes point to the wrong object? Why does your method work perfectly when called directly, but break when passed as a callback? And how do **[`call`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call)**, **[`apply`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply)**, and **[`bind`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind)** let you take control?
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/type-coercion.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Type Coercion: How Values Convert Automatically in JavaScript"
title: "Type Coercion"
sidebarTitle: "Type Coercion: How Values Convert Automatically"
description: "Learn JavaScript type coercion and implicit conversion. Understand how values convert to strings, numbers, and booleans, the 8 falsy values, and how to avoid common coercion bugs."
description: "Learn JavaScript type coercion. Understand how values convert to strings, numbers, and booleans, plus the 8 falsy values."
---

Why does `"5" + 3` give you `"53"` but `"5" - 3` gives you `2`? Why does `[] == ![]` return `true`? How does JavaScript decide what type a value should be?
Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/value-reference-types.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Value vs Reference Types: How Memory Works in JavaScript"
title: "Value vs Reference Types"
sidebarTitle: "Value vs Reference Types: How Memory Works"
description: "Learn how value types and reference types work in JavaScript. Understand how primitives and objects are stored, why copying objects shares references, and how to avoid mutation bugs."
description: "Learn value vs reference types in JavaScript. Understand how primitives and objects are stored in memory and avoid mutation bugs."
---

Have you ever wondered why changing one variable unexpectedly changes another? Why does this happen?
Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/web-workers.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Web Workers: True Parallelism in JavaScript"
title: "Web Workers"
sidebarTitle: "Web Workers: True Parallelism"
description: "Learn Web Workers in JavaScript for running code in background threads. Understand postMessage, Dedicated and Shared Workers, and transferable objects."
---
Expand Down
2 changes: 1 addition & 1 deletion docs/contributing.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Contributing"
description: "How to contribute to 33 JavaScript Concepts"
description: "Want to contribute to 33 JavaScript Concepts? Learn how to submit improvements, fix issues, and help other developers learn."
---

## Welcome Contributors!
Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started/about.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "About 33 JavaScript Concepts: Origin and Goals"
title: "About This Project"
sidebarTitle: "What is This Project?"
description: "Discover the story behind 33 JavaScript Concepts. Learn what topics are covered, who this guide is for, and how it helps you become a better developer."
---
Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started/how-to-learn.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "How to Learn JavaScript Effectively with This Guide"
title: "How to Use This Guide"
sidebarTitle: "How to Learn"
description: "Learn how to study JavaScript effectively. Tips for practicing code, understanding concepts, and getting the most from each lesson in this guide."
---
Expand Down
Loading