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) toNumber.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
SponsoredJavaScript Frameworks

