FrontEnd Topics
Quick Nav
| Area | Notes |
|---|---|
| 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