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/constsyntax, 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/DataViewfor 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
argumentsobject, and pre-ES6 namespacing patterns. -
Classes —
classdeclarations, private fields/methods, static members, getters/setters, abstract-class patterns, and subclassing withextends/super. -
Modules — ES module
export/importsyntax, module scoping, and CommonJS contrasted with ES modules. -
Standard library: collections —
Set/Map/WeakSet/WeakMapand when to prefer them over plain objects/arrays. -
Standard library: regular expressions — regex syntax, flags, groups, and the
RegExp/Stringmethods that use them. -
Standard library: dates, errors & JSON — the
Dateobject, theErrorclass hierarchy and custom errors,try/catch/finally, andJSON.stringify/parse. -
Standard library: internationalization —
Intl.NumberFormat,DateTimeFormat,Collator, andPluralRules. -
Standard library: console, URL & timers — the
consoleAPI,URL/URLSearchParams, and the timer functions. -
Standard library: metaprogramming — property descriptors, object extensibility controls, and the
Reflect/ProxyAPIs. -
Asynchronous JavaScript — callbacks,
Promise,async/await, async iteration, a workedfetch()example, and the microtask-queue timing model. -
Exception handling —
throw/try/catch/finallymechanics, customErrorsubclasses, and exception handling inasync/awaitand Promise chains.
JavaScript in the browser
-
Web programming basics — the
window/documentglobals, 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/HTMLVideoElementplayback, audio recording, and captions. -
Location, navigation, history & geolocation —
window.location, the History API for SPA routing, and the Geolocation API. -
Storage — cookies,
localStorage/sessionStorage, andIndexedDB. -
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
-
Flanagan, David. JavaScript: The Definitive Guide, 7th ed. O’Reilly Media, 2020. See the publisher’s page.
-
MDN Web Docs — the general reference used throughout for topics and details not covered by the book above, in particular WebGL, Three.js, the Geolocation API, WebRTC, the Video APIs, and the developer-tooling pages.
-
tc39.es/ecma262 — the living draft of the ECMAScript specification.
-
ecma-international.org — the ratified editions of ECMA-262.
-
github.com/tc39/proposals — the TC39 proposal process for upcoming language features.
-
Three.js documentation, ESLint documentation, Prettier documentation, Jest documentation, Babel documentation, and npm documentation — the official docs behind the tooling pages above.