🌱 "Success doesn’t come from what you do occasionally, it comes from what you do consistently."
-
JavaScript Basics
- Purpose, How It Works, and Use in Web Development
- Showing Output with
console.log()andconsole.table()
-
Variables & Data Types
- Declaring Variables (
var,let,const) - Primitive vs Reference Types
- Checking Types with
typeof
- Declaring Variables (
-
Type Conversion
- Converting Between String, Number, and Boolean
- Implicit vs Explicit Conversion
🧠 "Code is like humor. When you have to explain it, it’s bad."
-
Operations in JavaScript
- Arithmetic Operations
- String Operations
- Operator Precedence
- Prefix and Postfix Increments
- Tricky Conversions and Type Coercion
- Tricky Assignments
-
Comparisons in JavaScript
- Basic Comparisons
- Tricky Comparisons (null, undefined)
- Strict Equality vs Loose Equality (
===vs==) - Not Equal Operators (
!=vs!==)
-
Datatypes in JavaScript
- Primitive Datatypes
- Reference (Non-Primitive) Datatypes
- Tricky Datatype Checks (
typeof null)
🧠 "Understanding memory and strings is key to mastering JavaScript."
-
Memory Management
- Stack vs Heap
- Primitive vs Reference Types
constBinding vs Value Mutability
-
Strings Fundamentals
- String Creation & Access
- String Immutability
- String Prototype
-
String Methods & Utilities
- Common String Methods (charAt, slice, replace, etc.)
- String Comparison (
localeCompare) - Legacy HTML String Methods (deprecated)
🌱 "Every expert was once a beginner. Keep coding, keep growing."
-
Numbers & Formatting
- Defining numbers (primitive vs object)
- Methods:
toFixed()– fixed decimal placestoString()– convert to stringtoPrecision()– set total digitstoLocaleString()– readable format
-
Math Operations
- Constants:
Math.PI,Math.E - Methods:
abs(),sqrt()round(),ceil(),floor()min(),max() - Random no. generation:
Math.random()– value between 0 and 1 Custom range logic (e.g., 1–10, min–max)
- Constants:
-
Dates & Time
- Create dates (current and specific)
- Format methods:
toString(),toDateString(),toISOString(),toLocaleString() - Timestamps:
Date.now(), convert to seconds - Extract parts:
getMonth(),getDate()
🌟 "Learning to write programs stretches your mind, and helps you think better."
-
Arrays
- What is an Array?
- Array Indexing Basics
- Creating arrays:
Literal Syntax
[]Constructor Syntaxnew Array()
-
Working with Arrays
- Add/Remove:
push(),pop(),unshift(),shift() - Search:
includes(),indexOf() - Transform:
slice(),splice(),join(),flat()
- Add/Remove:
-
Combining & Converting
- Merge:
concat(), spread... - Convert:
Array.from(),Array.of() - Type Check:
Array.isArray()
- Merge:
🤖 "Programming is 10% writing code and 90% figuring out why it doesn’t work — welcome to the club!"
-
Understanding Objects
- What is an Object?
- Accessing Values (Dot & Bracket Notation)
- Symbol Keys
-
Creating & Structuring Objects
- Object Literals vs Constructor Syntax
- Nested Objects
- Array of Objects
-
Working with Objects
- Methods &
thisKeyword - Freezing Objects
- Merging Objects (
Object.assign(), Spread Operator) - Utility Methods:
keys(),values(),entries(),hasOwnProperty()
- Methods &
🌟 "Data isn't just stored — it's structured, shared, and made functional."
-
Object Destructuring
- Extracting properties from objects
- Renaming variables during destructuring
- Practical use with user data or API responses
-
Intro to JSON
- Understanding JSON structure
- Differences between JSON and JavaScript objects
- Common usage in APIs and data exchange
-
Functions in JavaScript
- Normal Function
- Function with Return
- Function with If Condition
- Function with Default Values
✨ "Functions make code reusable. Scope makes code manageable."
-
Functions and Scope
- Functions with Spread as Parameter
- Functions with Fixed and Spread Parameters
- Functions with Object as Parameter
- Functions with Array as Parameter
-
Understanding Scope in JavaScript
- What is Scope?
- Using
var - Using
let - Using
const
🧠 "Understanding scope and context unlocks powerful control over your code."
-
Scope in JavaScript
- Block Scope (
let,const,var) - Lexical Scope and Closures
- Block Scope (
-
Function Behavior
- Function Declarations vs Expressions
- Arrow Functions and
thisBinding
-
The
thisKeyword- In Object Methods, Global Context, and Different Function Types
- In Object Methods, Global Context, and Different Function Types
-
Essentials Recap
- Scope Safety, Closure Use, Hoisting Rules, and Context Awareness
🌀 "JavaScript doesn’t sleep — it stacks dreams in a call stack and wakes them with a function."
-
IIFE (Immediately Invoked Function Expression)
- What is IIFE?
- Why use IIFE?
- Important Rules
-
JavaScript Execution Contexts & Lifecycle
- How JavaScript Runs Code
- Types of Execution Contexts
- Global Execution Context
- Functional Execution Context
- Execution Context Lifecycle (Step-by-Step)
- Memory Creation Phase
- Execution Phase
-
Call Stack in JavaScript
- What is Call Stack?
- How Call Stack Works with examples
🌱 "It’s not that I’m so smart, it’s just that I stay with problems longer."
-
Control Flow Basics
- Overview of Execution Order
- Conditional and Looping Statements
-
Conditional Statements
if,else if,else- Logical Operators (
&&,||,!) - Double NOT (
!!) and Boolean Conversion switchStatement- Ternary Operator (
? :) - Nullish Coalescing Operator (
??)
-
Truthy & Falsy Values
- Falsy Value List
- Tricky Truthy Values
-
Loops in JavaScript
forLoop Syntax and Usage- Nested Loops
- Looping through Arrays
breakandcontinuein Loops
🔄 "Control the flow, shape the data — great code begins with great loops."
-
JavaSript Loops
- While & Do-While Loops
- forEach Method for Arrays
-
Iterating with For Loops
- For...of Loop (Values in Arrays, Strings, Maps)
- For...in Loop (Keys/Indexes in Objects & Arrays)
-
Map Data Structure
- Key-Value Pairs with Order
- Differences from Objects
- Iteration with for...of
🛠️ "Fix the cause, not the symptom."
-
Array Methods
filter()– Selecting values based on conditionsmap()– Transforming each value in an arrayreduce()– Combining all values into one result- Method Chaining – Using multiple array methods together
-
DOM Basics and Tree
- What is DOM? – Understanding the document tree structure
windowanddocumentObjects – Connecting JavaScript to the browser and webpage
🌱 "DOM connects HTML and JavaScript, letting us manipulate web pages dynamically."
-
DOM Selection & Collections
- Selectors:
getElementById,getElementsByClassName,querySelector, etc. - HTMLCollection vs NodeList
- Converting to Arrays for Iteration
- Selectors:
-
DOM Properties & Methods
- Accessing/Changing Text and HTML (
innerText,innerHTML) - Managing Attributes (
getAttribute,setAttribute) - Inline Styling (
styleproperty) - Navigating Between Elements: parent, children, siblings
- Accessing/Changing Text and HTML (
-
DOM Manipulation
- Creating & Appending Elements
- Setting Attributes and Text
- Looping for Multiple Elements
✨ "Web interactivity grows when you can change or remove elements dynamically."
-
DOM Manipulation: Edit & Delete Elements
- Enhancing interactivity and user experience on real websites
- Replace content dynamically using
replaceWith() - Remove elements with
remove()method
-
Mini JavaScript Projects (DOM Practice)
- Project 1: Background Color Changer
- Project 2: BMI Calculator
- Project 3: Digital Clock
- Project 4: Guess the Number Game
🎯 "Events are the heartbeat of interactive web pages — learn to listen well."
-
JavaScript Event Listeners
- Definition and Purpose of Event Listeners
- Common Examples of Events (click, keypress, mouseover)
-
Different Ways to Add Event Listeners
- Inline Event Listeners (Old Method)
- Using Element Properties (
onclick) - Using
addEventListener()(Modern Best Practice)
-
Event Object in Event Listeners
- Event Object
- Event Object Methods
- Event Object Properties
-
Event Propagation
- Event Bubbling
- Event Capturing
⚡ "Understanding JavaScript’s flow is the first step to mastering async magic."
-
JavaScript Execution & Flow
- Default Behaviour (Synchronous & Single-thread)
- Execution Context (Memory Heap & Call Stack)
- Blocking vs Non-blocking Code
-
Asynchronous JavaScript
- How Async Works Internally
- JS Engine & Web API Environment
- Task Queue vs Microtask Queue (High Priority Queue)
- Event Loop Flow & Example
- How Async Works Internally
-
Timers in JavaScript
setTimeout()&clearTimeout()setInterval()&clearInterval()- Project: Continuous Background Color Changer
-
Keyboard Events
- Keyboard Event Types
- Event Object Properties
- Project: Keyboard Keys Detector Table
-
AJAX Fundamentals
- AJAX Basics & Use Cases
XMLHttpRequest(XHR) Overview- Ready State Values
- Common Methods (
open,sendetc.) - Handling Responses
⚡ "Mastering asynchronous code unlocks the real power of JavaScript."
-
JavaScript Promises
- Defining Promises: Purpose, States, and Usage
- Creating Promises with
resolve&reject - Handling Results:
then(),catch(), andfinally() - Chaining with Thenables (
then()chaining)
-
Working with fetch()
- Overview of fetch() and Its Purpose
- Using fetch() with
then()andcatch() - Using fetch() with
async/await - How fetch() Works Internally
- Why fetch() Replaced XMLHttpRequest (XHR)
- Advantages of fetch() over XHR
💡 "Objects are the heart of JavaScript — understand them, and the language opens up."
-
Object-Oriented Programming (OOP) in JS
- What is OOP & Why Use It
- Four Pillars: Abstraction, Encapsulation, Inheritance, Polymorphism
-
Creating & Managing Objects
- Object Literals
- Constructor Functions
newandthisKeywords- Importance of
new
-
Prototype System
- What is Prototype & Prototype Chain
- Everything is an Object (Hierarchy)
thisin Prototype Methods- Prototype for All Objects vs Specific Types
-
Inheritance in JavaScript
- Prototype-Based Inheritance
- Old Style:
__proto__Linking - Modern Style:
Object.setPrototypeOf()
🛠 "Understanding
this, object creation, and class mechanics is key to writing clean, powerful JavaScript."
-
Working with
thisand Function Calls- Behavior of
thisin different contexts - Using
call()to manually setthis
- Behavior of
-
Object Creation Approaches
- Pre-ES6: Constructor Functions & Prototypes
- ES6 Classes: Syntax and Behind-the-Scenes Prototype Inheritance
-
Class Features
- Constructors, Properties, and Shared Methods
- Static Methods for Class-Level Utilities
-
Inheritance in JavaScript
extendsfor Class Inheritancesuper()for Parent Constructor Calls- Prototype Chaining Mechanism
💡 "Mastering the little-known parts of JavaScript is what turns good code into great code."
-
Understanding
bind()- Controlling
thisinside functions - Callback context issues without
bind() - Using
bind()in early React class components
- Controlling
-
Hidden Properties in Objects
- Built-in constants like
Math.PI - Property descriptors (
writable,enumerable,configurable) - Checking descriptors with
Object.getOwnPropertyDescriptor()
- Built-in constants like
-
Setting Hidden Properties for Custom Objects
- Using
Object.defineProperty() - Making properties read-only, hidden in loops, or locked
- Practical steps to configure property settings
- Using
💡 "Control your data, control your code."
-
Getters & Setters
- In Classes, Constructor Functions, and Objects
- Why Use Them & Key Rules
- Access as Properties, Not Functions
-
Private Fields in Classes
- Old Underscore Convention vs Modern
#Syntax - True Privacy and Access Restrictions
- Old Underscore Convention vs Modern
-
Lexical Scoping
- Inner Functions Remember Outer Variables
- Scope Determined at Creation, Not Call
-
Closures
- Inner Functions Keeping Access After Outer Ends
- Uses in Event Handlers, Callbacks, and More
- Real Scenario of Closure Example