|── Basics
| ├── Variables
| ├── Data Types
| ├── Operators
| ├── Type Conversion
| └── Console Methods
|
|── Control Structures
| ├── if-else Statements
| ├── switch Statements
| ├── Loops
| └── break and continue
|
|── Functions
| ├── Function Declarations
| ├── Function Expressions
| ├── Arrow Functions
| ├── Rest and Spread Operators
| ├── Default Parameters
| └── Callback Functions
|
|── Objects
| ├── Object Properties
| ├── Methods
| ├── Object Destructuring
| ├── Object.freeze() & Object.seal()
| └── this Keyword
|
|── Arrays
| ├── Array Methods
| ├── Array Destructuring
| ├── Spread Operator
| └── Iterating Arrays
|
|── DOM Manipulation
| ├── Query Selectors
| ├── Adding/Removing Elements
| ├── Event Handling
| ├── DOM Traversal
| └── Styling Elements
|
|── Asynchronous JavaScript
| ├── Promises
| ├── Async/Await
| ├── Fetch API
| └── setTimeout & setInterval
|
|── Error Handling
| ├── try...catch
| ├── throw Statements
| └── Error Objects
|
|── ES6+ Features
| ├── let and const
| ├── Template Literals
| ├── Destructuring
| ├── Modules
| ├── Classes
| ├── Promises and Async/Await
| └── Optional Chaining
|
|── Regular Expressions
| ├── Syntax
| ├── Flags
| ├── Methods
| └── Advanced Patterns
|
|── Object-Oriented Programming
| ├── Classes and Objects
| ├── Inheritance
| ├── Encapsulation
| ├── Polymorphism
| └── Static Methods
|
|── Functional Programming
| ├── Pure Functions
| ├── Higher-Order Functions
| ├── Closures
| ├── Currying
| └── Composition
|
|── Modules
| ├── CommonJS
| ├── ES6 Modules
| └── Dynamic Import
|
|── Web APIs
| ├── LocalStorage and SessionStorage
| ├── Geolocation API
| ├── Web Workers
| └── Fetch and AJAX
|
|── Event Loop
| ├── Call Stack
| ├── Task Queue
| ├── Microtasks
| └── Async/Await Flow
|
|── Debugging
| ├── Debugging in Chrome DevTools
| ├── Console Tricks
| └── Common Errors and Fixes
|
|── Testing
| ├── Unit Testing with Jest
| ├── End-to-End Testing
| └── Mocking and Spying
|
|── Performance Optimization
| ├── Debouncing and Throttling
| ├── Lazy Loading
| ├── Memory Management
| └── Code Splitting
|
|── Security
| ├── Cross-Site Scripting
| ├── Cross-Origin Resource Sharing
| ├── Content Security Policy
| └── Secure Cookies
|
|── Advanced Topics
| ├── Prototypes & Inheritance
| ├── Closures
| ├── Event Delegation
| ├── Generators & Iterators
| └── WeakMap & WeakSet
|
|── Tooling
| ├── npm & Yarn
| ├── Webpack
| ├── Babel
| └── Linters
|
|── TypeScript Integration
| ├── Setting Up TypeScript
| ├── Type Annotations
| ├── Interfaces & Types
| ├── Generics
| ├── TypeScript with Classes
| └── TypeScript with React
|
|── Deployment
| ├── Static Hosting
| ├── Node.js Backends
| └── Serverless Functions
|
|── Best Practices
| └── Clean Code
|
|_________________END____________
