- JS Engine
- Call Stack
- Primitive Types
- Value Types and Reference Types
- Implicit, Explicit, Nominal, Structuring and Duck Typing
- == vs === vs typeof
- Function Scope, Block Scope and Lexical Scope
- Expression vs Statement
- IIFE, Modules and Namespaces
- Message Queue and Event Loop
- setTimeout, setInterval and requestAnimationFrame, how JS Engine works here
- Bitwise Operators, Type Arrays and Array Buffers
- DOM and Layout Trees
- Factories and Classes
- this, call, apply and bind
- new, Constructor, instanceof and Instances
- Prototype Inheritance and Prototype Chain
- Object.create and Object.assign
- map, reduce, filter
- Pure Functions, Side Effects, State Mutation and Event Propagation
- Closures
- High Order Functions/First class function
- Recursion
- Collections and Generators, Iterators, Iterable, Object Descriptors
- Promises
- async/await,
- asunc vs defer
- import vs require
- Babel
- Context in React/Redux
- Data Structures
- Expensive Operation and Big O Notation, Algorithms
- Inheritance, Polymorphism and Code Reuse
- Design Patterns
- Partial Applications, Currying, Compose and Pipe
- Clean Code
- LifeCycle Methods
- How react handles bundles file, optimisations, babel, webpack etc.
- UseEffect, useLayout, useMemo, React.Memo
- Debouncing, throlling, implemnation and use case
- react suspense, fallback
- Redux,
- CSR/SSR
- Web Performance -Redux Knowledge