Back to Notes

FrontEnd Topics

Quick Nav

AreaNotes
JavaScript Core[[JavaScript]]
JavaScript DOM[[JavaScript DOM Notes]]
JS Interview Patterns[[JavaScript Function Code Examples for Interviews]]
JS Interview Questions[[JavaScript Interview Questions]]
React[[React]]
Interview Questions (HTML/CSS/React)[[Interview Question]]

JavaScript Topics Checklist

  • Data types & typeof
  • var / let / const — scope, hoisting, TDZ
  • Closures
  • this, bind / call / apply
  • Arrow functions
  • Objects & prototype chain
  • Promises & async/await
  • Event loop (microtask vs macrotask queue)
  • Array / Map / Set — methods + complexity
  • Generators & Iterators
  • Modules (ES modules vs CommonJS)
  • Web APIs — localStorage, sessionStorage, IndexedDB

DOM Topics Checklist

  • DOM tree navigation (nodes vs elements)
  • querySelector vs getElementsBy*
  • Attributes vs properties
  • DOM manipulation (create, insert, remove, clone)
  • Event bubbling & capturing
  • Event delegation
  • Common event types
  • IntersectionObserver / MutationObserver
  • Performance — requestAnimationFrame, layout thrashing

React Topics Checklist

  • Virtual DOM & reconciliation
  • JSX basics
  • useState, useEffect, useRef
  • useMemo, useCallback, useContext, useReducer
  • Custom hooks
  • Controlled vs uncontrolled components
  • Component composition patterns
  • Performance optimisation (React.memo, code splitting)
  • React Router
  • State management (Redux, Zustand, Jotai)
  • React Query / TanStack Query
  • Testing (React Testing Library)

Machine Coding Patterns (JS)

  • Debounce (basic + with cancel/flush)
  • Throttle
  • Flatten array
  • Promise.all / allSettled / race / any / resolve / reject
  • Currying / infinite currying
  • Array polyfills (map, filter, reduce, at, concat)
  • Deep clone (basic + cyclic)
  • getElementsByClassName / getElementsByStyle / getElementsByTagName
  • Memoize function
  • Event emitter
  • LRU Cache (JS class)
  • Virtual DOM implementation