<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>js.stuartsm</title><description>New and substantially updated lessons and reference entries.</description><link>https://js.stuartsm.com/</link><language>en</language><item><title>Orientation: Running and Reading JavaScript</title><link>https://js.stuartsm.com/learn/beginner/orientation-and-execution/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/beginner/orientation-and-execution/</guid><description>What JavaScript is, where it runs, and how to read the statements, expressions, and errors in a small program.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Values, Variables, and Operators</title><link>https://js.stuartsm.com/learn/beginner/values-variables-and-operators/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/beginner/values-variables-and-operators/</guid><description>The primitive types JavaScript works with, how to declare and name bindings, and the operators and equality rules that combine values into new ones.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Control Flow</title><link>https://js.stuartsm.com/learn/beginner/control-flow/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/beginner/control-flow/</guid><description>Directing which statements run, and how many times, with conditionals and loops — plus writing both so they stay readable as they grow.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Functions and Scope</title><link>https://js.stuartsm.com/learn/beginner/functions-and-scope/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/beginner/functions-and-scope/</guid><description>Three ways to write a function, how parameters and return values work, what makes a function pure, and a first mental model for closures.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Arrays and Objects</title><link>https://js.stuartsm.com/learn/beginner/arrays-and-objects/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/beginner/arrays-and-objects/</guid><description>Creating, reading, updating, copying, and transforming the two structures nearly every JavaScript program is built from.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Strings, Numbers, Dates, and Regex Awareness</title><link>https://js.stuartsm.com/learn/beginner/strings-numbers-and-dates/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/beginner/strings-numbers-and-dates/</guid><description>The everyday string and number methods, locale-aware formatting, working with dates safely, and what problems regular expressions solve.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Errors and Debugging</title><link>https://js.stuartsm.com/learn/beginner/errors-and-debugging/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/beginner/errors-and-debugging/</guid><description>The four kinds of error you&apos;ll actually hit, how to read a stack trace, throwing and catching your own errors, and a repeatable process for finding a bug.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>The Browser and the DOM</title><link>https://js.stuartsm.com/learn/beginner/the-browser-and-the-dom/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/beginner/the-browser-and-the-dom/</guid><description>Selecting and updating elements, handling events safely, working with forms, and persisting small amounts of data in localStorage.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Asynchronous Basics and Data Fetching</title><link>https://js.stuartsm.com/learn/beginner/async-basics-and-fetching/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/beginner/async-basics-and-fetching/</guid><description>Why waiting for something needs a different execution model, how promises and async/await represent an eventual outcome, and fetching data with resilient loading/empty/error states.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Modules, Tooling, and First Tests</title><link>https://js.stuartsm.com/learn/beginner/modules-tooling-and-first-tests/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/beginner/modules-tooling-and-first-tests/</guid><description>Splitting code across files with export/import, what package.json and a lockfile actually do, and writing a first unit test with Arrange/Act/Assert.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Execution Model, Scope, and Closures</title><link>https://js.stuartsm.com/learn/intermediate/execution-model-scope-and-closures/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/intermediate/execution-model-scope-and-closures/</guid><description>A precise model of execution contexts and scope chains, exactly what hoisting does for each declaration type, and closures used deliberately for encapsulation and memoization.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Objects, Prototypes, Classes, and this</title><link>https://js.stuartsm.com/learn/intermediate/objects-prototypes-classes-and-this/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/intermediate/objects-prototypes-classes-and-this/</guid><description>Property descriptors and getters/setters, how the prototype chain implements delegation, classes as syntax over that same mechanism, and how this is actually determined.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Functional Techniques and Collection Design</title><link>https://js.stuartsm.com/learn/intermediate/functional-techniques-and-collections/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/intermediate/functional-techniques-and-collections/</guid><description>Composing small functions into pipelines, treating immutability as a deliberate design choice, choosing the right collection type, and writing a custom iterable.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Asynchronous JavaScript in Depth</title><link>https://js.stuartsm.com/learn/intermediate/async-javascript-in-depth/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/intermediate/async-javascript-in-depth/</guid><description>A precise event-loop mental model — the call stack, microtasks, and macrotasks — plus cancellation, retries, race conditions, and async iteration.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Browser Application Architecture</title><link>https://js.stuartsm.com/learn/intermediate/browser-application-architecture/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/intermediate/browser-application-architecture/</guid><description>Event delegation and custom events for scalable UI wiring, client-side navigation with the History API, web components in moderation, and the browser&apos;s core security model.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Networking, Storage, and Workers</title><link>https://js.stuartsm.com/learn/intermediate/networking-storage-and-workers/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/intermediate/networking-storage-and-workers/</guid><description>HTTP methods and caching semantics, choosing among cookies/Web Storage/IndexedDB, offline strategy with service workers, and offloading CPU-bound work to a web worker.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Node.js and Cross-Runtime JavaScript</title><link>https://js.stuartsm.com/learn/intermediate/node-and-cross-runtime-javascript/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/intermediate/node-and-cross-runtime-javascript/</guid><description>Node&apos;s core APIs — the file system, streams, processes — the two common async API styles, a minimal HTTP server, and what genuinely differs between JavaScript runtimes.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Testing and Maintainability</title><link>https://js.stuartsm.com/learn/intermediate/testing-and-maintainability/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/intermediate/testing-and-maintainability/</guid><description>The test pyramid as a heuristic, test doubles and when a fake beats a mock, keeping tests deterministic, and designing code around cohesion and dependency inversion so it stays testable.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Types, Documentation, and Package Design</title><link>https://js.stuartsm.com/learn/intermediate/types-documentation-and-package-design/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/intermediate/types-documentation-and-package-design/</guid><description>JSDoc as editor-visible contracts, TypeScript as an optional neighboring path, and designing a package&apos;s public surface — exports, versioning, and documentation.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Performance and Diagnostics</title><link>https://js.stuartsm.com/learn/intermediate/performance-and-diagnostics/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/intermediate/performance-and-diagnostics/</guid><description>Measuring before optimizing, recognizing algorithmic complexity in everyday code, throttling/debouncing expensive work, and finding the memory-leak sources unique to long-lived JavaScript apps.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>ECMAScript Specification Literacy</title><link>https://js.stuartsm.com/learn/advanced/ecmascript-specification-literacy/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/advanced/ecmascript-specification-literacy/</guid><description>How a proposal becomes a language feature, how to read specification-style algorithm steps, and using internal slots to explain apparent language oddities precisely.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Deep Object and Meta-Programming Semantics</title><link>https://js.stuartsm.com/learn/advanced/meta-programming-and-proxies/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/advanced/meta-programming-and-proxies/</guid><description>Property descriptors and integrity levels precisely, symbols as collision-free keys, and Proxy/Reflect for intercepting fundamental object operations — with real observability and performance costs.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Advanced Functions and Evaluation</title><link>https://js.stuartsm.com/learn/advanced/advanced-functions-and-evaluation/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/advanced/advanced-functions-and-evaluation/</guid><description>Environment retention in long-lived closures, generator delegation and coroutine-like patterns, tail-call semantics versus real engine support, and the genuine risks of dynamic evaluation.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Concurrency, Scheduling, and Distributed Effects</title><link>https://js.stuartsm.com/learn/advanced/concurrency-scheduling-and-distributed-effects/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/advanced/concurrency-scheduling-and-distributed-effects/</guid><description>How Node&apos;s event loop phases differ from the browser&apos;s, backpressure and scheduling fairness, true shared memory with SharedArrayBuffer, structured concurrency, and the realities of distributed systems.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Modules, Packages, and Supply-Chain Design</title><link>https://js.stuartsm.com/learn/advanced/modules-packages-and-supply-chain/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/advanced/modules-packages-and-supply-chain/</guid><description>Live bindings and how module cycles actually resolve, the dual-package hazard conditional exports can create, designing for library API stability, and dependency supply-chain risk.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Engine Behavior and Performance Engineering</title><link>https://js.stuartsm.com/learn/advanced/engine-behavior-and-performance-engineering/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/advanced/engine-behavior-and-performance-engineering/</guid><description>Hidden classes and inline caches as engine-dependent optimizations, generational garbage collection, designing a benchmark that isn&apos;t lying to you, and when WebAssembly is (and isn&apos;t) the right boundary to reach for.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Security and Isolation</title><link>https://js.stuartsm.com/learn/advanced/security-and-isolation/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/advanced/security-and-isolation/</guid><description>Threat modeling a JavaScript application, prototype pollution and other injection classes beyond DOM XSS, Trusted Types and cross-origin isolation, Node-specific risk, and capability-based design.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Architecture for Large Systems</title><link>https://js.stuartsm.com/learn/advanced/architecture-for-large-systems/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/advanced/architecture-for-large-systems/</guid><description>Ports and adapters for isolating core logic from I/O, event sourcing/CQRS as a consistency trade-off, observability as a first-class concern, and writing an ADR-driven incremental migration plan.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>Advanced Testing and Verification</title><link>https://js.stuartsm.com/learn/advanced/advanced-testing-and-verification/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/advanced/advanced-testing-and-verification/</guid><description>Property-based, mutation, fuzz, and differential testing as complements to example-based tests, hermetic builds for reproducibility, and static analysis via codemods.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>API and Language-Tool Design</title><link>https://js.stuartsm.com/learn/advanced/api-and-language-tool-design/</link><guid isPermaLink="true">https://js.stuartsm.com/learn/advanced/api-and-language-tool-design/</guid><description>The parse/transform/generate pipeline behind every codemod and linter, designing an API&apos;s error model and diagnostics to be genuinely actionable, source maps, and plugin systems with real isolation boundaries.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Lesson</category></item><item><title>AbortController</title><link>https://js.stuartsm.com/reference/browser/abort-controller/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/browser/abort-controller/</guid><description>Cancels an in-flight fetch (or other supporting async operation) via a shared signal, rejecting its promise with an AbortError.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>addEventListener and the Event Object</title><link>https://js.stuartsm.com/reference/browser/events/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/browser/events/</guid><description>Runs a function in response to a browser event, receiving an event object describing what happened and how to control the default behavior.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>API Design for Libraries (Fluent APIs, Diagnostics, Source Maps)</title><link>https://js.stuartsm.com/reference/patterns/api-design-for-libraries/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/api-design-for-libraries/</guid><description>Designing a chainable fluent API that defers work to a clear terminal call, actionable diagnostics, and source maps that keep debugging transformed code usable.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Architectural Decision Records (ADRs)</title><link>https://js.stuartsm.com/reference/patterns/architectural-decision-records/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/architectural-decision-records/</guid><description>A short, durable document capturing one significant architectural decision&apos;s context, choice, and consequences, written at the time it&apos;s made.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Arrange / Act / Assert</title><link>https://js.stuartsm.com/reference/patterns/arrange-act-assert/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/arrange-act-assert/</guid><description>A structure for writing a clear unit test — set up the input, run the code under test, check the result.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Array Methods (map, filter, find, some, every)</title><link>https://js.stuartsm.com/reference/built-ins/array-methods/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/built-ins/array-methods/</guid><description>The everyday transformation and search methods on Array.prototype — which mutate, which don&apos;t, and when to reach for each.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Array.prototype.reduce()</title><link>https://js.stuartsm.com/reference/built-ins/array-reduce/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/built-ins/array-reduce/</guid><description>Combines every array element into a single accumulated result, using a callback and a starting value.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>AST Fundamentals (Parse, Transform, Generate)</title><link>https://js.stuartsm.com/reference/patterns/ast-fundamentals/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/ast-fundamentals/</guid><description>Every source-to-source tool follows the same pipeline — parse code into a structured Abstract Syntax Tree, transform it, generate code back out.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>async / await</title><link>https://js.stuartsm.com/reference/syntax/async-await/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/syntax/async-await/</guid><description>Syntax for writing promise-based code that reads like ordinary sequential code — await pauses only the async function it&apos;s inside.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Benchmark Design</title><link>https://js.stuartsm.com/reference/patterns/benchmark-design/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/benchmark-design/</guid><description>Warm-up, representative input, variance reporting, and guarding against dead-code elimination — what separates a trustworthy benchmark from a misleading number.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Big O Notation (in Everyday Code)</title><link>https://js.stuartsm.com/reference/patterns/big-o-notation/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/big-o-notation/</guid><description>A way to describe how a piece of code&apos;s cost grows as its input grows — most usefully spotted as a loop nested inside another loop over related data.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Callbacks</title><link>https://js.stuartsm.com/reference/patterns/callbacks/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/callbacks/</guid><description>A function passed as an argument to another function, to be called later — the pattern behind array methods, events, and async code.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Classes</title><link>https://js.stuartsm.com/reference/syntax/classes/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/syntax/classes/</guid><description>Syntax over the prototype mechanism — public and private fields, methods on the shared prototype, and extends for inheritance.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Closures for Encapsulation</title><link>https://js.stuartsm.com/reference/patterns/closures-in-depth/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/closures-in-depth/</guid><description>Using a closure deliberately to create private state — a factory function returning an object whose internal variables can&apos;t be reached from outside.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Codemods</title><link>https://js.stuartsm.com/reference/patterns/codemods/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/codemods/</guid><description>A program that transforms source code programmatically via its AST — a scripted, repeatable refactor applied across an entire codebase.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>CommonJS versus ES Modules</title><link>https://js.stuartsm.com/reference/patterns/commonjs-vs-esm/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/commonjs-vs-esm/</guid><description>Node&apos;s two module systems — require/module.exports (CommonJS) and import/export (ES modules) — and how Node decides which one a file uses.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>console</title><link>https://js.stuartsm.com/reference/browser/console/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/browser/console/</guid><description>A host API for writing diagnostic output — not part of the JavaScript language itself, but available in both browsers and Node.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>const and let</title><link>https://js.stuartsm.com/reference/syntax/const-and-let/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/syntax/const-and-let/</guid><description>The two modern ways to declare a variable binding — const cannot be reassigned, let can.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>CustomEvent</title><link>https://js.stuartsm.com/reference/browser/custom-events/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/browser/custom-events/</guid><description>Dispatches an application-defined event, carrying arbitrary data via .detail, decoupling the code that announces something from whatever reacts to it.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Date and Intl.DateTimeFormat</title><link>https://js.stuartsm.com/reference/built-ins/date/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/built-ins/date/</guid><description>Creating and reading a Date correctly, a well-known month-indexing and time-zone-parsing pitfall, and formatting dates for a human reader.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Dependency Inversion</title><link>https://js.stuartsm.com/reference/patterns/dependency-inversion/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/dependency-inversion/</guid><description>Depending on a passed-in interface rather than a concrete, hard-coded implementation — what makes substituting a test double possible.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Destructuring, Spread, and Rest</title><link>https://js.stuartsm.com/reference/syntax/destructuring-and-spread/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/syntax/destructuring-and-spread/</guid><description>Three related bits of syntax built on ... and pattern-matching — pulling values out, copying/combining data, and gathering leftovers.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Dynamic Evaluation Risks (eval, new Function)</title><link>https://js.stuartsm.com/reference/patterns/dynamic-evaluation-risks/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/dynamic-evaluation-risks/</guid><description>eval and new Function execute a string as code with full access to their reachable scope — neither provides a meaningful sandbox boundary.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Equality Operators (=== and ==)</title><link>https://js.stuartsm.com/reference/syntax/equality-operators/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/syntax/equality-operators/</guid><description>Strict equality (===) never coerces types; loose equality (==) coerces one side according to a specific set of rules.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Event Delegation</title><link>https://js.stuartsm.com/reference/patterns/event-delegation/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/event-delegation/</guid><description>Attaching one listener to a stable ancestor, using event bubbling to handle events from any current or future descendant.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>fetch</title><link>https://js.stuartsm.com/reference/browser/fetch/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/browser/fetch/</guid><description>Requests a URL and returns a promise for the response — rejects only on network failure, not on an HTTP error status.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>for await...of and Async Generators</title><link>https://js.stuartsm.com/reference/syntax/async-iteration/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/syntax/async-iteration/</guid><description>Iterates an async iterable — one whose Symbol.asyncIterator produces promises — the async counterpart to for...of.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>for, while, and for...of</title><link>https://js.stuartsm.com/reference/syntax/for-and-while-loops/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/syntax/for-and-while-loops/</guid><description>Three loop forms — for when counting or indexing, while when the iteration count isn&apos;t known up front, for...of when iterating a collection&apos;s values.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Forms and Constraint Validation</title><link>https://js.stuartsm.com/reference/browser/forms-and-validation/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/browser/forms-and-validation/</guid><description>HTML&apos;s built-in form validation attributes, and how to read validity state or add an accessible custom error message alongside it.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>fs/promises and node:path</title><link>https://js.stuartsm.com/reference/node/filesystem-and-paths/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/node/filesystem-and-paths/</guid><description>Reading and writing files with Node&apos;s promise-based file system API, and building paths safely with the path module.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Function Composition</title><link>https://js.stuartsm.com/reference/patterns/function-composition/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/function-composition/</guid><description>Chaining small, single-purpose functions into a pipeline, each handling one transformation.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Function Declarations, Expressions, and Arrow Functions</title><link>https://js.stuartsm.com/reference/syntax/functions/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/syntax/functions/</guid><description>Three syntaxes for creating a function value, differing in hoisting behavior and how they handle this.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Generational Garbage Collection</title><link>https://js.stuartsm.com/reference/patterns/garbage-collection-generations/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/garbage-collection-generations/</guid><description>Most modern engines organize the heap by object age, since most objects die young — collecting the young generation frequently and cheaply, the old generation less often.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Generator Delegation (yield*)</title><link>https://js.stuartsm.com/reference/patterns/generator-delegation/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/generator-delegation/</guid><description>Delegates part of a generator&apos;s iteration to another iterable, forwarding values and the delegate&apos;s return value transparently.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Generators and Iterators</title><link>https://js.stuartsm.com/reference/syntax/generators-and-iterators/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/syntax/generators-and-iterators/</guid><description>The Symbol.iterator protocol that powers for...of and spread, and generator functions (function*) as the easiest way to implement it.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Guard Clauses</title><link>https://js.stuartsm.com/reference/patterns/guard-clauses/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/guard-clauses/</guid><description>Handling an edge case with an early return at the top of a function, instead of nesting the normal-case logic inside a conditional.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Hidden Classes and Inline Caches</title><link>https://js.stuartsm.com/reference/patterns/hidden-classes-and-inline-caches/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/hidden-classes-and-inline-caches/</guid><description>Engine-dependent optimizations that track an object&apos;s shape and cache property-access paths — consistent object shapes keep them effective.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Hoisting</title><link>https://js.stuartsm.com/reference/syntax/hoisting/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/syntax/hoisting/</guid><description>How each declaration type — var, function, let, const, class — is set up before line-by-line execution begins, and what&apos;s accessible before its own line runs.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>HTTP Caching (Cache-Control)</title><link>https://js.stuartsm.com/reference/patterns/http-caching/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/http-caching/</guid><description>How the Cache-Control header controls whether and how long a response can be reused without asking the server again.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>if / else and switch</title><link>https://js.stuartsm.com/reference/syntax/if-else-and-switch/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/syntax/if-else-and-switch/</guid><description>Branching statements — if/else for arbitrary conditions, switch for one value compared against several exact matches.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>import and export</title><link>https://js.stuartsm.com/reference/syntax/import-export/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/syntax/import-export/</guid><description>Module syntax for sharing code between files — any number of named exports, at most one default export per module.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>IndexedDB</title><link>https://js.stuartsm.com/reference/browser/indexeddb/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/browser/indexeddb/</guid><description>A browser API for storing large amounts of structured, queryable data client-side, well suited to offline-capable applications.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Integrity Levels (preventExtensions, seal, freeze)</title><link>https://js.stuartsm.com/reference/patterns/integrity-levels/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/integrity-levels/</guid><description>Three levels of object mutability restriction, each blocking a specific, increasing set of operations — freeze is shallow.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>JSDoc Annotations</title><link>https://js.stuartsm.com/reference/patterns/jsdoc-annotations/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/jsdoc-annotations/</guid><description>Comment-based type annotations that give editor tooling a function&apos;s real contract, with no build step required.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>JSON.parse() and JSON.stringify()</title><link>https://js.stuartsm.com/reference/built-ins/json/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/built-ins/json/</guid><description>Convert between a JavaScript value and its JSON text representation — the standard way data crosses storage and network boundaries.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Live Bindings and Module Cycles</title><link>https://js.stuartsm.com/reference/patterns/live-bindings/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/live-bindings/</guid><description>An ES module import is a continuously updated reference, not a copied value — the mechanism that makes many circular imports resolvable.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>localStorage</title><link>https://js.stuartsm.com/reference/browser/local-storage/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/browser/local-storage/</guid><description>Persists small amounts of string data in the browser between page loads, scoped to the page&apos;s origin.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Map, Set, WeakMap, and WeakSet</title><link>https://js.stuartsm.com/reference/built-ins/map-and-set/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/built-ins/map-and-set/</guid><description>Dedicated collection types — Map/Set for general keyed/unique-value storage, WeakMap/WeakSet for weakly-held object keys that don&apos;t prevent garbage collection.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Math and Intl.NumberFormat</title><link>https://js.stuartsm.com/reference/built-ins/math-and-number-formatting/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/built-ins/math-and-number-formatting/</guid><description>The Math object&apos;s standard numeric operations, and Intl.NumberFormat for locale-correct display formatting instead of hand-built strings.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Memoization</title><link>https://js.stuartsm.com/reference/patterns/memoization/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/memoization/</guid><description>Caching a pure function&apos;s results, keyed by its arguments, so a repeated call with the same input returns instantly instead of recomputing.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Memory Leak Sources</title><link>https://js.stuartsm.com/reference/patterns/memory-leak-sources/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/memory-leak-sources/</guid><description>Four classic causes of a JavaScript memory leak — forgotten listeners, uncleared timers, long-lived closures, and detached DOM nodes still referenced.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Mutation Testing</title><link>https://js.stuartsm.com/reference/patterns/mutation-testing/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/mutation-testing/</guid><description>Introduces small bugs into code and reruns the test suite, checking whether tests actually catch them — measuring test quality beyond what coverage can show.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>node:http — A Minimal HTTP Server</title><link>https://js.stuartsm.com/reference/node/http-server/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/node/http-server/</guid><description>Node&apos;s built-in HTTP server module — request/response handling with no framework, and why every input from it is untrusted.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Node&apos;s Event Loop Phases</title><link>https://js.stuartsm.com/reference/patterns/node-event-loop-phases/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/node-event-loop-phases/</guid><description>Node&apos;s event loop cycles through distinct phases (timers, poll, check, and others), each handling a specific callback category — microtasks still drain between every phase.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Number Edge Cases (NaN, Infinity, Floating Point)</title><link>https://js.stuartsm.com/reference/built-ins/number-edge-cases/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/built-ins/number-edge-cases/</guid><description>JavaScript&apos;s single numeric type is 64-bit floating point, which produces predictable rounding error and two special non-finite values.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Observability Basics (Structured Logs, Correlation IDs)</title><link>https://js.stuartsm.com/reference/patterns/observability-basics/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/observability-basics/</guid><description>Understanding a system&apos;s internal state from its external outputs — structured logs and a correlation id threaded through a request&apos;s full call chain.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Optional Chaining (?.) and Nullish Coalescing (??)</title><link>https://js.stuartsm.com/reference/syntax/optional-chaining-and-nullish-coalescing/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/syntax/optional-chaining-and-nullish-coalescing/</guid><description>?. reads a property and stops safely if anything along the way is missing; ?? supplies a fallback only for null or undefined.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>package.json and package-lock.json</title><link>https://js.stuartsm.com/reference/node/package-json/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/node/package-json/</guid><description>package.json describes a Node project&apos;s scripts and dependencies; package-lock.json pins the exact versions actually installed, for reproducibility.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>package.json exports</title><link>https://js.stuartsm.com/reference/node/package-exports/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/node/package-exports/</guid><description>Explicitly declares a package&apos;s public entry points — anything not listed isn&apos;t importable by consumers, making internal refactoring safe.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Plugin Systems and Isolation Boundaries</title><link>https://js.stuartsm.com/reference/patterns/plugin-systems/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/plugin-systems/</guid><description>Letting third-party code extend a tool&apos;s behavior, deliberately, through only the specific capabilities a plugin&apos;s job actually requires.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Ports and Adapters (Hexagonal Architecture)</title><link>https://js.stuartsm.com/reference/patterns/ports-and-adapters/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/ports-and-adapters/</guid><description>Isolates core logic behind interfaces (ports) it depends on, with concrete I/O implementations (adapters) plugged in from outside.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Promise</title><link>https://js.stuartsm.com/reference/built-ins/promise/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/built-ins/promise/</guid><description>A value representing an operation that hasn&apos;t completed yet, eventually settling as fulfilled (success) or rejected (failure).</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Proper Tail Calls</title><link>https://js.stuartsm.com/reference/patterns/tail-calls/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/tail-calls/</guid><description>A specified stack-frame-reuse optimization for tail-position calls, implemented by Safari&apos;s JavaScriptCore but not V8 or SpiderMonkey — not reliable for stack safety in practice.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Property-Based Testing</title><link>https://js.stuartsm.com/reference/patterns/property-based-testing/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/property-based-testing/</guid><description>States an invariant that should hold for any valid input, and generates many varied inputs (including edge cases) to check it, shrinking failures to a minimal reproducer.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Prototype Pollution</title><link>https://js.stuartsm.com/reference/patterns/prototype-pollution/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/prototype-pollution/</guid><description>Attacker-controlled data used to set a property on Object.prototype itself, affecting every plain object in the program — distinct from DOM XSS.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Prototypes and Object.create</title><link>https://js.stuartsm.com/reference/patterns/prototypes-and-object-create/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/prototypes-and-object-create/</guid><description>Every object delegates to another object via its prototype; Object.create sets that link up explicitly.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Proxy and Reflect</title><link>https://js.stuartsm.com/reference/patterns/proxy-and-reflect/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/proxy-and-reflect/</guid><description>Proxy intercepts fundamental object operations through traps; Reflect provides each operation&apos;s default implementation for a trap to delegate to.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Reading Specification Algorithms</title><link>https://js.stuartsm.com/reference/patterns/reading-spec-algorithms/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/reading-spec-algorithms/</guid><description>How to read the ECMAScript specification&apos;s numbered-step, abstract-operation style, including completion records and the ? abrupt-completion shorthand.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>ReferenceError</title><link>https://js.stuartsm.com/reference/errors/reference-error/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/errors/reference-error/</guid><description>Thrown when code refers to a binding that doesn&apos;t exist — the code was valid JavaScript, but the name it looked for wasn&apos;t there when it ran.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Regular Expressions (Introduction)</title><link>https://js.stuartsm.com/reference/patterns/regular-expressions-intro/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/regular-expressions-intro/</guid><description>What problem a regular expression solves — matching a pattern of text, not one exact value — without full pattern-writing fluency yet.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Retry with Exponential Backoff</title><link>https://js.stuartsm.com/reference/patterns/retry-with-backoff/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/retry-with-backoff/</guid><description>Retrying a failed, idempotent operation with an increasing delay between attempts, to avoid hammering a struggling server.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Same-Origin Policy, CORS, and CSP</title><link>https://js.stuartsm.com/reference/browser/cors-and-csp/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/browser/cors-and-csp/</guid><description>The browser&apos;s default restriction on reading cross-origin responses, how a server relaxes it with CORS, and how CSP restricts what a page can load.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Selecting and Updating DOM Elements</title><link>https://js.stuartsm.com/reference/browser/dom-selecting-and-updating/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/browser/dom-selecting-and-updating/</guid><description>querySelector/querySelectorAll to find elements, and textContent/classList/setAttribute to read and update them safely.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Semantic Versioning</title><link>https://js.stuartsm.com/reference/patterns/semantic-versioning/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/semantic-versioning/</guid><description>A version-numbering convention (major.minor.patch) that promises what kind of change a release contains, based on its effect on consumers.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Service Workers</title><link>https://js.stuartsm.com/reference/browser/service-workers/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/browser/service-workers/</guid><description>A script running independently of any page that intercepts network requests, enabling deliberate offline strategies.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>SharedArrayBuffer and Atomics</title><link>https://js.stuartsm.com/reference/browser/shared-array-buffer/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/browser/shared-array-buffer/</guid><description>Genuine shared memory between workers, with Atomics providing race-free operations on it — requires cross-origin isolation headers.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Statements and Expressions</title><link>https://js.stuartsm.com/reference/syntax/statements-and-expressions/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/syntax/statements-and-expressions/</guid><description>An expression produces a value; a statement is a complete instruction that may contain one but isn&apos;t one itself.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Streams</title><link>https://js.stuartsm.com/reference/node/streams/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/node/streams/</guid><description>Processes data in chunks as it arrives, instead of loading an entire file or response into memory at once.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Strict Mode</title><link>https://js.stuartsm.com/reference/syntax/strict-mode/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/syntax/strict-mode/</guid><description>An opt-in restricted variant of JavaScript that turns several silent mistakes into thrown errors.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>String Methods</title><link>https://js.stuartsm.com/reference/built-ins/string-methods/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/built-ins/string-methods/</guid><description>The everyday methods for searching, slicing, and transforming text — every one returns a new string, since strings are immutable.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Structured Concurrency</title><link>https://js.stuartsm.com/reference/patterns/structured-concurrency/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/structured-concurrency/</guid><description>Binding a concurrent operation&apos;s lifetime to its parent&apos;s, so cancelling the parent explicitly propagates to every child it started.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>structuredClone()</title><link>https://js.stuartsm.com/reference/built-ins/structured-clone/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/built-ins/structured-clone/</guid><description>Deep-copies a value using the structured clone algorithm — handles plain data, Map, Set, and Date, but not functions or DOM nodes.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Supply-Chain Security for Dependencies</title><link>https://js.stuartsm.com/reference/patterns/supply-chain-security/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/supply-chain-security/</guid><description>A dependency is a trust decision beyond its current code — provenance, transitive dependency count, update risk, and install-time script execution all matter.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Symbols and Well-Known Symbols</title><link>https://js.stuartsm.com/reference/syntax/symbols/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/syntax/symbols/</guid><description>A guaranteed-unique primitive type, used as a collision-free object key and to hook user objects into built-in language behavior via well-known symbols.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>SyntaxError</title><link>https://js.stuartsm.com/reference/errors/syntax-error/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/errors/syntax-error/</guid><description>Thrown when code isn&apos;t valid JavaScript at all — the engine refuses to run any of the file, not just the broken line.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Template Literals</title><link>https://js.stuartsm.com/reference/syntax/template-literals/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/syntax/template-literals/</guid><description>Backtick-delimited strings that support embedded expressions and multi-line text without manual concatenation.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Test Doubles (Stub, Mock, Fake)</title><link>https://js.stuartsm.com/reference/patterns/test-doubles/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/test-doubles/</guid><description>Three kinds of substitute for a real dependency in a test — a stub returns data, a mock asserts on calls, a fake is a real simplified implementation.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>The Dual-Package Hazard</title><link>https://js.stuartsm.com/reference/patterns/dual-package-hazard/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/dual-package-hazard/</guid><description>Shipping both a CommonJS and ESM build risks an app loading two separate instances of the same package, with two separate copies of any module-level state.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>The Event Loop (Microtasks and Macrotasks)</title><link>https://js.stuartsm.com/reference/patterns/event-loop/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/event-loop/</guid><description>The call stack, and the two queues — microtasks and macrotasks — the event loop drains, always fully emptying microtasks before touching the next macrotask.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>The History API (pushState and popstate)</title><link>https://js.stuartsm.com/reference/browser/history-api/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/browser/history-api/</guid><description>Changes the URL shown in the address bar without a page reload, and handles the browser&apos;s back/forward buttons — the mechanism client-side routers are built on.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>The TC39 Stage Process</title><link>https://js.stuartsm.com/reference/patterns/tc39-process/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/tc39-process/</guid><description>How a proposal advances through five stages (0-4) toward becoming a standardized ECMAScript feature, and the compatibility responsibility each stage implies.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>The Test Pyramid</title><link>https://js.stuartsm.com/reference/patterns/test-pyramid/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/test-pyramid/</guid><description>A heuristic about cost and confidence — more unit tests, fewer integration tests, fewer still end-to-end tests — not a strict ratio to enforce.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>this, call, apply, and bind</title><link>https://js.stuartsm.com/reference/syntax/this-call-apply-bind/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/syntax/this-call-apply-bind/</guid><description>this is determined by a function&apos;s call site, not where it&apos;s defined; call/apply/bind set it explicitly, and arrow functions have no this of their own.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Threat Modeling</title><link>https://js.stuartsm.com/reference/patterns/threat-modeling/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/threat-modeling/</guid><description>Identifying a system&apos;s assets, actors, and trust boundaries — even an informal version done deliberately catches bug classes a functional review misses.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Throttle and Debounce</title><link>https://js.stuartsm.com/reference/patterns/throttle-and-debounce/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/throttle-and-debounce/</guid><description>Two techniques for limiting how often expensive work runs in response to a high-frequency event — throttle caps the rate, debounce waits for a pause.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Throwing at a Validation Boundary</title><link>https://js.stuartsm.com/reference/patterns/error-handling/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/patterns/error-handling/</guid><description>Validate input where it enters your code and throw a descriptive Error, so bad values can&apos;t silently propagate deeper into the program.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Trusted Types</title><link>https://js.stuartsm.com/reference/browser/trusted-types/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/browser/trusted-types/</guid><description>A CSP-enforced browser API making a raw-string assignment to a DOM-XSS-sensitive sink a structural TypeError, unless it passes through a reviewed policy.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>try / catch / finally</title><link>https://js.stuartsm.com/reference/syntax/try-catch-finally/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/syntax/try-catch-finally/</guid><description>Runs a block and, if it throws, catches the error instead of crashing the program; finally always runs afterward.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>TypeError</title><link>https://js.stuartsm.com/reference/errors/type-error/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/errors/type-error/</guid><description>Thrown when an operation is attempted on a value that doesn&apos;t support it — reading a property of null, calling something that isn&apos;t a function.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item><item><title>Web Workers</title><link>https://js.stuartsm.com/reference/browser/web-workers/</link><guid isPermaLink="true">https://js.stuartsm.com/reference/browser/web-workers/</guid><description>Runs JavaScript on a separate thread for CPU-bound work, communicating with the main thread only via message passing.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Reference</category></item></channel></rss>