JavaScript

JavaScript (ECMAScript / ECMA-262) is the universal programming language of the web, running natively across all major browsers and server-side runtimes.

JavaScript Engines & Runtimes

Browser Engines

  • Chrome / Chromium: V8 (written in C++), powers Chrome, Edge, Brave, and Node.js.
  • Firefox: SpiderMonkey (written in C++, Rust, and JavaScript).
  • Safari: JavaScriptCore (Nitro) (written in C++).

Server & Standalone Runtimes

  • Node.js: The foundational event-driven JavaScript runtime built on V8 and libuv.
  • Deno: Modern runtime with native TypeScript, Web standard APIs, and secure-by-default sandboxing, written in Rust.
  • Bun: Ultra-fast all-in-one runtime, package manager, and bundler written in Zig using JavaScriptCore.

JavaScript Ecosystem

Web Frameworks & Libraries

  • React & Next.js: Component architecture with React Server Components (RSC) and App Router.
  • Vue & Nuxt: Progressive reactive framework with Composition API.
  • Svelte & SvelteKit: Compile-time reactivity without virtual DOM overhead.

Build Tools & Bundlers

  • Vite: Next-generation frontend tooling powered by native ES modules and esbuild for rapid HMR (Hot Module Replacement).
  • Turbopack: Rust-based incremental bundler developed by Vercel for Next.js.
  • esbuild: Extremely fast JavaScript/TypeScript bundler written in Go.
  • Rollup: Industry-standard tree-shaking bundler for JavaScript libraries and packages.

Type Safety

  • TypeScript: Typed superset of JavaScript providing compile-time type checking, refactoring, and autocompletion.

Numbers & Numeric Limits

Numbers (Number)

JavaScript numbers are double-precision 64-bit binary format IEEE 754 values.

  • Safe integer range: Number.MIN_SAFE_INTEGER (-9,007,199,254,740,991) to Number.MAX_SAFE_INTEGER (9,007,199,254,740,991, or $2^{53} - 1$).
  • Beyond this range, arithmetic operations lose precision.

BigInt (BigInt)

ES2020 introduced native BigInt for arbitrary-precision integers:

// Suffix numbers with 'n' or use BigInt()
const huge = 9007199254740991n + 2n; // 9007199254740993n
const parsed = BigInt('9007199254740991000000');

Template Literals & Interpolation

Template literals support multi-line strings, string interpolation, and tagged templates:

const name = 'Alice';
const score = 98;

const message = `Hello, ${name}!
Your score is: ${score} / 100.`;
Recommended Reading
Sponsored
JavaScript: The Definitive Guide
The JS Bible
JavaScript: The Definitive Guide
By David FlanaganView on Amazon