JavaScript Cheat Sheet
  
  
  
    
    
      1 Basics
      
        - Variables: 
let, const (prefer), (avoid var) 
        - Types: 
number, string, boolean, null, undefined, object, bigint, symbol 
        - Template literals: 
`Hello ${name}` 
        - Strict equality: 
=== / !== 
        - Modules: 
export, import 
      
      const name = "Ada";
const age = 37;
console.log(`Hi ${name}, ${age} next year: ${age + 1}`);
    
    
    
      2 Operators
      
        - Arithmetic: 
+ - * / % ** 
        - Assignment: 
+= -= *= /= %= **= 
        - Comparison: 
=== !== < <= > >= 
        - Logical: 
&&, ||, !, ?? (nullish) 
        - Optional chaining: 
user?.profile?.email 
        - Type: 
typeof x, Array.isArray(x) 
      
    
    
    
      3 Strings
      
        - Length: 
str.length 
        - Case: 
toUpperCase(), toLowerCase() 
        - Search: 
includes(), indexOf(), startsWith(), endsWith() 
        - Cut/replace: 
slice(), substring(), replace(), trim() 
        - Split/join: 
split(",") ⇄ Array (join is on arrays) 
      
      "  hello  ".trim().toUpperCase(); // "HELLO"
    
    
    
      4 Arrays
      
        - Stack/queue: 
push, pop, shift, unshift 
        - Search: 
indexOf, includes, find 
        - Slice/mutate: 
slice (copy), splice (mutate) 
        - Iterate: 
forEach, map, filter, reduce 
        - Test/order: 
some, every, sort, reverse 
      
      const odds = [1,2,3,4,5].filter(n => n % 2);
const sum  = odds.reduce((a,b) => a + b, 0);
    
    
    
      5 Functions
      
        - Declarations: 
function greet(){} 
        - Expressions: 
const f = function(){} 
        - Arrow: 
const f = (x) => x * 2 
        - Defaults: 
function f(x = 1){} 
        - Rest/spread: 
function f(...xs){}, f(...arr) 
        - Closures & higher-order functions
 
      
      const once = fn => { let ran=false, val; return (...a)=> ran ? val : (ran=true, val=fn(...a)); };
    
    
    
      6 Objects
      
        - Create: 
{ a:1 }, Object.create(proto) 
        - Read/write: 
obj.key, obj["key"], delete obj.key 
        - Utilities: 
Object.keys, values, entries, hasOwn 
        - Merge/clone: 
{...a, ...b}, Object.assign({}, a, b) 
        - Destructuring: 
const {x, y:yy=0} = pt 
      
      const user = {id:1, name:"Ada"};
const {name} = user; // "Ada"
    
    
    
      7 Conditionals & Loops
      
        if / else, switch, ternary cond ? A : B 
        - Loops: 
for, for...of (iterables), for...in (object keys) 
        while, do...while, break/continue 
        - Error handling: 
try/catch/finally 
      
    
    
    
      8 DOM Manipulation
      
        - Select: 
getElementById(), querySelector(), querySelectorAll() 
        - Create/insert: 
document.createElement(), append()/appendChild() 
        - Events: 
el.addEventListener('click', fn) 
        - Classes: 
el.classList.add/remove/toggle 
        - Content: 
textContent, innerHTML 
      
      const btn = document.querySelector('#buy');
btn?.addEventListener('click', () => alert('Thanks!'));
    
    
    
      9 ES6+ Features
      
        let/const, arrow functions, template literals 
        - Destructuring & rest/spread 
... 
        - Modules 
import/export 
        - Iterables & generators: 
function* g(){} 
        - Optional chaining 
?., nullish coalescing ?? 
      
    
    
    
      10 Promises & Async
      
        - Create: 
new Promise((res, rej) => {...}) 
        - Consume: 
.then(...).catch(...).finally(...) 
        async/await for linear style 
        - Combinators: 
Promise.all, race, allSettled, any 
        - Fetch: 
await fetch(url).then(r => r.json()) 
      
      async function getUser(id){
  const r = await fetch(`/api/users/${id}`);
  if(!r.ok) throw new Error('HTTP ' + r.status);
  return r.json();
}
    
    
    
      11 Common Built‑ins
      
        - Math: 
Math.max, min, floor, ceil, round, random 
        - Date: 
Date.now(), new Date(), getFullYear() 
        - JSON: 
JSON.stringify() / JSON.parse() 
        - Number: 
parseInt, parseFloat, Number.isNaN 
        - Timers: 
setTimeout, setInterval, clear* 
        - URL utils: 
URL, URLSearchParams 
      
      const q = new URLSearchParams(location.search);
const page = Number(q.get('page') ?? 1);
    
    
    
      12 Patterns & Tips
      
        - Immutability: prefer 
map/filter/slice over mutation 
        - Guard clause: return early to reduce nesting
 
        - Pure functions & small modules
 
        - Use 
try/catch at boundaries (I/O, network) 
        - Lint/format: ESLint + Prettier
 
      
      function price(cents){
  if(cents == null || cents < 0) throw new Error('bad');
  return `$${(cents/100).toFixed(2)}`;
}
    
  
  
 
Comments
Post a Comment