JavaScript
DOM
- querySelector
- textContent
- addEventListener
- Order of Parsing
- event Propagation
- event Bubbling
- event Capturing/ Trickling
- how to add both on program
event.stopPropagation();
- inst
e.target
- id
- tagName
- pros and cons
Architecture
- Execution context
- variable environment (memory)
- Thread of execution (code)
- global & local execution context
- phases
- Memory allocation
- Code execution
- Synchronous single threaded app
- Call stack
- Proxy
- Proxy traps
- Reflect
- proxy vs reflect
- Event loop
- Callback queue/ task queue
- Microtask queue
- mutation observer
- Starvation
- Memory Heap
- Just In Time Compilation
- Interpreter vs Compiler
- Abstract Syntax Tree
- Concurrency model
Theory
- Data types
- wrapper objects
- 0 vs new
Number(0)
- Numbers
- 1_000_000
- 1e9, 1e-6
- Hex, binary and octal numbers
toString(base)
Math.trunc()
- Operators
- Enum
- how to get enum in javascript
- Function
- Function Statement
- Function Expression
- Function Declaration
- Anonymous function
- Named Function Expression
- Functional Programing
- Higher order function
- First class function
- Decorator function
- use
- count no of function call
- valid data of params
- Pure function
- pros and cons
- rules
- pure vs impure
- IIFE
- pros
- cons
- Advantages and disadvantages of JS
- Set Map Flat
- set
- add, delete, has, clear, kyes, values, entries
<setName>.size
- map
- get, set, has, delete, clear, keys, values, entries, forEach
- iterating
- object vs map
- WeekSet
- features
- WeekMap
- features
- key is private
- Week set and map summary
- falt()
- flatMap()
- reduceRight()
- copyWithin()
- Operators
- Nullish coalescing operator
- Optional chaining
||
vs ??
- Ternary operator
- Type Operators
- Unary operators
- delete
- typeof
- !, ++, -, +
- Bitwise Operators
- bitwise OR
- bitwise AND
- uses
- Scope
- Global scope
- Module scope
- Function scope
- Lexical scope
- Block scope
- Shadowing & Illegal shadowing
- Prototype
- Types of error
- syntax, logic
- Closure
- Disadvantage
- Uses
- lexical scope vs closure
- IIFE
- Garbage collection
- How does it work?
- mark-and-sweep
- reachability
- Optimizations
- Generational
- collection
- Incremental collection
- Idle-time collection
- Hoisting
- TDZ
let
, const
vs var
- Function vs arrow function
- Call Apply Bind
- function borrowing
- call vs apply vs bind
- polyfills
- transpiler
- Babel
- Webpack
- Polyfills vs Transpiler
this
keyword
- String Methods
- Length, toUpperCase, LowerCase, Trim, Pad, charAt, Split, Concat, substring, indexOf, lastIndexOf, localeCompare
- Array Methods
- Map, Filter, Reduce, Find, Sort, Foreach, Push, Pop, Shift, Unshift, Slice, Splice, concat, indexOf, lastIndexOf, forEach, split, join, reduceRight, iArray, fill, copy, flat
- spare array, jagged array, hols in array
- copy within
- typed arrays
- Object Methods
- object constructor, literal
- deleting field
- Computed properties
__proto__
- in
Object.assign
- structuredClone
\_.cloneDeep(obj)
- methods
this
keyword
- Symbol type
- Symbol
- properties
- use
- ongo
- global symbol registry
- for, keyFor, iterator, toPrimitive
- Loop
- for
- do while vs while
- labelled statements
- break
- continue
- for…in
- for…of
- Callback
- callback hell
- inversion of control
- Promises
- Promise states
- Promise chaining
- Promise.all
- Promise.allSettled
- Promise.any
- Promise.race
- Promise.resolve
- Thenable
- Finally
- Catch
- immutable
- promisify
- pros and cons
- Async await
- async always return a promise
- error handling in async await
- Debouncing & Throttling
- both are used for optimising performance of a web app
- by limiting the rate of API calls
- Spread and Rest Operator
- DOM, BOM
- Window Object
- ES6 and its features
- Let, Var, Const
- Ternary operator
- Arrow function
- Template literals
- Default Parameters
- Classes
- Modules
- Iterators
- Object & Array Destructuring
- Primitive and non-primitive
- Pass by value and pass by reference
- Message queue
- Life
- Generator
- Prototype
- Prototype chain
- Prototypal Inheritance
- uses?
- Circular reference
- Object.key
- Recursion
- recursive call to function
- condition to exit
- pros and cons
- display the fibonacci sequence
- use
- JavaScript is dynamically types
- Currying
- function inside function
- Type Casting
- Implicite (Coercion)
- Explicit (Conversion)
- Microtask queue
- Shallow copy vs Deep copy
- primitive vs structural
- how to make these copies
- pros and cons
- Mutable vs Immutable
Object.freeze()
strucutredClone()
- TCP/IP
- DNS
- IIFE
- pros and cons
- Composition vs Inheritance
- Function recursion
\[Symbol.iterator\]
- Truthy and falsy value
- Strict mode in JS
- this substitution
VS
- label vs func
==
and ===
- Let, const, var
- Synchronous vs asynchronous
- While vs do while
- Foreach Vs Map
- Parameters, Arguments
- for in, for of
- Undefined, Null
- Keywords & Identifiers
- Type casting vs Type coercion
- textContent vs innerText
- identifiers vs variables
- defer vs async
Good to Know
- interpreted and compiled doe
- Server-side vs client-side code
- with in js