JavaScript Development

This section documents modern ECMAScript and core browser JavaScript APIs — it is not tied to any specific framework or library (React, Vue, Angular, etc.). This content was generated with the assistance of AI and should be verified against the current ECMAScript specification and MDN documentation before relying on it in production, since JavaScript language features and browser API support continue to evolve.

This section’s bibliography lists the reference material consulted while preparing these pages.

Welcome to the JavaScript reference. This section covers modern ECMAScript, core browser JavaScript APIs, and the surrounding developer-tooling ecosystem, organized by topic so you can jump straight to what you need or work through it top to bottom as a refresher.

What’s covered

Language reference

  • Legacy features to avoid — var’s scoping/hoisting pitfalls, prototype-based inheritance patterns superseded by `class, and other legacy patterns modern code no longer needs.

  • Lexical structure — comments, literals, identifiers, let/const syntax, semicolon insertion, and Unicode notes.

  • Types, values & conversions — numbers (incl. BigInt), strings, booleans, null/undefined, Symbol, and type conversion/coercion rules.

  • Arrays & typed arrays — array literals, sparse arrays, array-like objects, the array method reference, and typed arrays/ArrayBuffer/DataView for binary data.

  • Functions, expressions & operators — the full operator reference and function fundamentals (declarations, expressions, arrow functions, IIFEs).

  • Iterators & generators — the iterator protocol, for…​of, custom iterables, generator functions, and delegating generators.

  • Statements — conditionals, loops, and loop-control statements.

  • Objects & destructuring — object literals, property access, enumeration, spread, and object/array destructuring.

  • Function parameters & namespaces — default/rest parameters, destructured parameters, the legacy arguments object, and pre-ES6 namespacing patterns.

  • Classes — class declarations, private fields/methods, static members, getters/setters, abstract-class patterns, and subclassing with extends/super.

  • Modules — ES module export/import syntax, module scoping, and CommonJS contrasted with ES modules.

  • Standard library: collections — Set/Map/WeakSet/WeakMap and when to prefer them over plain objects/arrays.

  • Standard library: regular expressions — regex syntax, flags, groups, and the RegExp/String methods that use them.

  • Standard library: dates, errors & JSON — the Date object, the Error class hierarchy and custom errors, try/catch/finally, and JSON.stringify/parse.

  • Standard library: internationalization — Intl.NumberFormat, DateTimeFormat, Collator, and PluralRules.

  • Standard library: console, URL & timers — the console API, URL/URLSearchParams, and the timer functions.

  • Standard library: metaprogramming — property descriptors, object extensibility controls, and the Reflect/Proxy APIs.

  • Asynchronous JavaScript — callbacks, Promise, async/await, async iteration, a worked fetch() example, and the microtask-queue timing model.

  • Exception handling — throw/try/catch/finally mechanics, custom Error subclasses, and exception handling in async/await and Promise chains.

JavaScript in the browser

  • Web programming basics — the window/document globals, querying/creating/removing elements, and reading/writing content and attributes.

  • Events — registering handlers, the capturing/target/bubbling phases, and event delegation.

  • Accessing CSS from JavaScript — inline/computed styles, classList, and CSS animation/transition lifecycle events.

  • Document geometry & scrolling — getBoundingClientRect, the offset/client/scroll dimension family, and controlling scroll position.

  • Animations via JavaScript — requestAnimationFrame, the Web Animations API, and animating SVG from JS.

  • Canvas, WebGL & Three.js — the 2D canvas API, an introduction to WebGL, and a Three.js quick start.

  • Audio & video APIs — HTMLAudioElement/HTMLVideoElement playback, audio recording, and captions.

  • Location, navigation, history & geolocation — window.location, the History API for SPA routing, and the Geolocation API.

  • Storage — cookies, localStorage/sessionStorage, and IndexedDB.

  • Networking — the full fetch() API, Server-Sent Events, WebSockets, and WebRTC.

  • Web Workers — dedicated/shared workers, message passing, and service workers.

  • Web Components — custom elements, lifecycle callbacks, the Shadow DOM, and <template>/<slot>.

Tooling

  • Static analysis & formatting — ESLint’s rule/config model and Prettier’s formatting role, composed together.

  • Unit testing with Jest — setup, assertions, mocking, async tests, snapshots, and coverage.

  • Transpilation with Babel — the plugin/preset model, preset-env, source maps, and Babel vs. polyfills.

  • Bundling & npm publishing — what bundlers solve, the current landscape, and a step-by-step npm publishing walkthrough.

  • Cheat sheet — a one-page, downloadable PDF summary of the essentials above for quick memorization.

Bibliography