JavaScript Cheatsheet

Variables Data Types Strings Numbers Arrays Objects Functions Arrow Functions Loops Conditionals DOM Events Async Promises Classes Modules Built-ins

Variables

Variables
let x = 5;
const y = 'hello';
var z = true;

Data Types

Data Types
typeof 42; // 'number'
typeof 'hi'; // 'string'
typeof true; // 'boolean'
typeof undefined; // 'undefined'
typeof null; // 'object'
typeof Symbol(); // 'symbol'
typeof {a:1}; // 'object'

Strings

Strings
let s = 'hello';
console.log(s.length); // 5
console.log(s.toUpperCase()); // 'HELLO'
console.log(`Hi, ${s}`); // Template literal

Numbers

Numbers
let n = 42;
console.log(n + 8); // 50
console.log(Math.round(2.7)); // 3
console.log(parseInt('10')); // 10

Arrays

Arrays
let arr = [1, 2, 3];
arr.push(4);
console.log(arr[0]); // 1
console.log(arr.length); // 4

Array Methods

Array Methods
let arr = [1, 2, 3];
let doubled = arr.map(x => x * 2); // [2, 4, 6]
let even = arr.filter(x => x % 2 === 0); // [2]
let sum = arr.reduce((a, b) => a + b, 0); // 6

Objects

Objects
let obj = {a: 1, b: 2};
console.log(obj.a); // 1
obj.c = 3;
for (let k in obj) { console.log(k, obj[k]); }

Functions

Functions
function add(a, b) {
  return a + b;
}
const sub = function(a, b) { return a - b; };

Arrow Functions

Arrow
const mul = (a, b) => a * b;
const sq = x => x * x;

Conditionals

Conditionals
if (x > 0) {
  console.log('Positive');
} else if (x === 0) {
  console.log('Zero');
} else {
  console.log('Negative');
}
let res = x > 0 ? 'pos' : 'neg'; // Ternary

Loops

Loops
for (let i = 0; i < 3; i++) {
  console.log(i);
}
for (let v of [1,2,3]) {
  console.log(v);
}
while (x > 0) {
  x--;
}

Scope & Hoisting

Scope
function foo() {
  var a = 1;
  if (true) {
    let b = 2;
  }
  // b is not accessible here
}
// var is function-scoped, let/const are block-scoped

Closures

Closures
function makeAdder(x) {
  return function(y) {
    return x + y;
  };
}
let add5 = makeAdder(5);
console.log(add5(2)); // 7

Classes

Classes
class Animal {
  constructor(name) {
    this.name = name;
  }
  speak() {
    console.log(`I am ${this.name}`);
  }
}
class Dog extends Animal {
  speak() {
    console.log('Woof!');
  }
}

Modules

Modules
// export.js
export function foo() {}
// import.js
import { foo } from './export.js';

DOM

DOM
const el = document.getElementById('id');
el.textContent = 'Hi';
const items = document.querySelectorAll('.item');

Events

Events
el.addEventListener('click', function(e) {
  console.log(e.target);
});

Async

Async
setTimeout(() => console.log('Hi'), 1000);
async function foo() {
  await fetch('/api');
}

Promises

Promises
let p = new Promise((res, rej) => res(42));
p.then(val => console.log(val));

Error Handling

Error
try {
  throw new Error('Oops');
} catch (e) {
  console.log(e.message);
} finally {
  console.log('Done');
}

Built-ins

Built-ins
console.log(Array.isArray([1,2])); // true
console.log(JSON.stringify({a:1})); // '{"a":1}'
console.log(Object.keys({a:1, b:2})); // ['a','b']