JavaScript Cheat Sheet

Core JavaScript syntax, functions, classes, modules, and everyday language patterns.

View
StandardDetailedCompact
Export
Copy the compact sheet, download it, or print it.
Download
`D` dense toggle · `C` copy all

Basics and Syntax

Variables, types, operators, interpolation, optional chaining, and nullish coalescing.

Log a value

Print a value to the console.

javascriptANYjavascriptdebuggingconsole
javascript
console.log(value);

Declare block-scoped variables

javascriptANYjavascriptvariablesbasics
javascript
const name = "Ada";
let count = 0;

Template literal interpolation

javascriptANYjavascriptstringstemplate-literals
javascript
const msg = `Hello, ${user.name}!`;

Default function parameters

javascriptANYjavascriptfunctionsdefaults
javascript
function greet(name = "friend") {
  return `Hello, ${name}`;
}

Optional chaining

javascriptANYjavascriptobjectsoptional-chaining
javascript
const city = user?.profile?.address?.city;

Nullish coalescing

javascriptANYjavascriptoperatorsnullish
javascript
const pageSize = input ?? 25;

Object destructuring

javascriptANYjavascriptdestructuringobjects
javascript
const { id, email, role = "user" } = account;

Array destructuring

javascriptANYjavascriptdestructuringarrays
javascript
const [first, second, ...rest] = values;

Object spread merge

javascriptANYjavascriptspreadobjects
javascript
const merged = { ...defaults, ...overrides };

Rest parameters

javascriptANYjavascriptfunctionsrest
javascript
function sum(...nums) {
  return nums.reduce((acc, n) => acc + n, 0);
}

Control Flow

Conditionals, loops, switch, early return, and error handling.

If / else statement

javascriptANYjavascriptcontrol-flowif
javascript
if (score >= 90) {
  grade = "A";
} else {
  grade = "B";
}

Ternary operator

javascriptANYjavascriptcontrol-flowternary
javascript
const label = isActive ? "Enabled" : "Disabled";

Switch statement

javascriptANYjavascriptcontrol-flowswitch
javascript
switch (status) {
  case "draft":
    return "gray";
  case "published":
    return "green";
  default:
    return "blue";
}

for...of loop

javascriptANYjavascriptloopsiterables
javascript
for (const item of items) {
  console.log(item);
}

for...in loop

javascriptANYjavascriptloopsobjects
javascript
for (const key in object) {
  console.log(key, object[key]);
}

Array forEach

javascriptANYjavascriptarraysiteration
javascript
items.forEach((item, index) => {
  console.log(index, item);
});

try / catch / finally

javascriptANYjavascripterrorscontrol-flow
javascript
try {
  riskyOperation();
} catch (err) {
  console.error(err.message);
} finally {
  cleanup();
}

Throw an error

javascriptANYjavascripterrorsexceptions
javascript
throw new Error("Invalid input");

Functions and Closures

Declarations, arrow functions, callbacks, currying, memoization, and this binding.

Function declaration

javascriptANYjavascriptfunctionsbasics
javascript
function add(a, b) {
  return a + b;
}

Arrow function

javascriptANYjavascriptfunctionsarrow
javascript
const double = (n) => n * 2;

Immediately-invoked function expression

javascriptANYjavascriptfunctionsiife
javascript
(() => {
  console.log("Runs immediately");
})();

Pass a callback

javascriptANYjavascriptcallbacksfunctions
javascript
function runTask(task, onDone) {
  const result = task();
  onDone(result);
}

Closure counter

javascriptANYjavascriptclosuresfunctions
javascript
function createCounter() {
  let count = 0;
  return () => ++count;
}

Bind function context

javascriptANYjavascriptthisfunctions
javascript
const bound = handler.bind(context);

call vs apply

javascriptANYjavascriptthisfunctions
javascript
fn.call(ctx, a, b);
fn.apply(ctx, [a, b]);

Currying pattern

javascriptANYjavascriptfunctionscurrying
javascript
const multiply = (a) => (b) => a * b;

Simple memoize helper

javascriptANYjavascriptperformancememoization
javascript
function memoize(fn) {
  const cache = new Map();
  return (...args) => {
    const key = JSON.stringify(args);
    if (cache.has(key)) return cache.get(key);
    const value = fn(...args);
    cache.set(key, value);
    return value;
  };
}

Sets, Maps, and Typed Data

Use built-in collection types and object helpers.

Create a Map

javascriptANYjavascriptmapcollections
javascript
const map = new Map([["id", 1], ["name", "Ada"]]);

Create a Set

javascriptANYjavascriptsetcollections
javascript
const unique = new Set([1, 2, 2, 3]);

Set and get Map values

javascriptANYjavascriptmapcollections
javascript
map.set("email", "ada@example.com");
const email = map.get("email");

Check Set membership

javascriptANYjavascriptsetcollections
javascript
const hasAdmin = roles.has("admin");

Object keys, values, entries

javascriptANYjavascriptobjectscollections
javascript
Object.keys(user);
Object.values(user);
Object.entries(user);

Object.fromEntries

javascriptANYjavascriptobjectscollections
javascript
const obj = Object.fromEntries([["a", 1], ["b", 2]]);

Convert Set to array

javascriptANYjavascriptsetarrays
javascript
const arr = [...unique];
// or Array.from(unique)

TypedArray example

javascriptANYjavascripttyped-arraysbinary
javascript
const bytes = new Uint8Array([72, 73]);

Classes and Prototypes

Constructors, inheritance, static members, private fields, and prototype methods.

Basic class

javascriptANYjavascriptclassesoop
javascript
class User {
  constructor(name) {
    this.name = name;
  }

  greet() {
    return `Hi, ${this.name}`;
  }
}

Class inheritance

javascriptANYjavascriptclassesinheritance
javascript
class Admin extends User {
  constructor(name, role) {
    super(name);
    this.role = role;
  }
}

Static method

javascriptANYjavascriptclassesstatic
javascript
class MathUtil {
  static clamp(n, min, max) {
    return Math.min(Math.max(n, min), max);
  }
}

Private class fields

javascriptANYjavascriptclassesprivate-fields
javascript
class Counter {
  #count = 0;
  inc() {
    return ++this.#count;
  }
}

Getters and setters

javascriptANYjavascriptclassesgetters
javascript
class Rectangle {
  constructor(width, height) {
    this.width = width;
    this.height = height;
  }
  get area() {
    return this.width * this.height;
  }
}

Add a prototype method

javascriptANYjavascriptprototypeclasses
javascript
User.prototype.isNamed = function (value) {
  return this.name === value;
};

Modules and Packaging

Import/export syntax, dynamic import, CommonJS interop, and environment access.

Named export

javascriptANYjavascriptmodulesesm
javascript
export function slugify(text) {
  return text.toLowerCase().replaceAll(" ", "-");
}

Default export

javascriptANYjavascriptmodulesesm
javascript
export default class ApiClient {}

Import named members

javascriptANYjavascriptmodulesimport
javascript
import { slugify } from "./slugify.js";

Import default export

javascriptANYjavascriptmodulesimport
javascript
import ApiClient from "./api-client.js";

Namespace import

javascriptANYjavascriptmodulesimport
javascript
import * as math from "./math.js";

Dynamic import

javascriptANYjavascriptmodulesdynamic-import
javascript
const module = await import("./feature.js");

CommonJS require

javascriptANYjavascriptcommonjsnodejs
javascript
const fs = require("node:fs");

Read environment variable

javascriptANYjavascriptenvironmentnodejs
javascript
const apiBase = process.env.API_BASE_URL;