25-Day In-Depth JavaScript Syllabus
Day 1: JavaScript Introduction & Execution Environment
History and evolution of JavaScript
JS vs ECMAScript
JS Engine & Runtime (V8, Node.js)
How JS runs in browser (Call stack, Web APIs)
Linking JS to HTML (<script> tags, defer and async)
Day 2: Variables, Data Types, and Memory
var, let, const - in-depth comparison
Primitive vs reference types
Stack vs heap memory
Type coercion vs conversion
typeof, instanceof, and == vs ===
Day 3: Operators & Expressions Deep Dive
Arithmetic, logical, comparison, bitwise
Destructuring operators
Short-circuiting and logical assignment operators
Operator precedence and associativity
Day 4: Conditionals & Flow Control
if, else, else if
switch and nested conditionals
Ternary operator
Use cases: input validation, control flows
Day 5: Loops & Iteration Patterns
for, while, do...while
Looping patterns: nested, reverse, early exit
Loop vs recursion (intro)
25-Day In-Depth JavaScript Syllabus
Iterating over arrays and objects
Day 6: Functions in Depth
Function declaration vs expression vs arrow
Parameters vs arguments
Callback functions
Pure vs impure functions
Higher-order functions intro
Day 7: Project 1 - Tip Calculator App
HTML + CSS UI
Enter amount and tip %
Show total and split amount
Use DOM and basic event handling
Day 8: Arrays Deep Dive
Creating and manipulating arrays
Methods: push, pop, shift, unshift, splice, slice, concat, join
Array mutation vs immutability
Day 9: Iterating Arrays with Functions
forEach, map, filter, reduce, some, every, find, findIndex
Chaining methods
Immutability patterns
Day 10: Objects Deep Dive
Object creation: literal, constructor, Object.create()
Property access: dot vs bracket
Dynamic keys, computed properties
Object cloning and immutability
25-Day In-Depth JavaScript Syllabus
Day 11: Object Methods & this
Adding methods to objects
this keyword - rules and binding
Arrow functions vs regular inside methods
Optional chaining, nullish coalescing
Day 12: Strings in Detail
Template literals
String methods: slice, substring, substr, replace, match, split, trim, etc.
Regex introduction for validation
Day 13: Dates & Math Object
Working with Date() objects
Parsing and formatting
Time-based operations
Math object: random, ceil, floor, etc.
Day 14: Project 2 - Expense Tracker
Add/Remove transactions
Track balance, income, expense
Local data with arrays and objects
Day 15: Scope, Execution Context & Hoisting
Global vs local scope
Function & block scope
Lexical environment
Hoisting rules (var, let, const, functions)
Day 16: Closures & the JS Engine
25-Day In-Depth JavaScript Syllabus
Closures explained with use cases
Memory retention and garbage collection
Private variables using closures
Day 17: ES6+ Features (Part 1)
let, const, template literals
Arrow functions and lexical this
Default and rest parameters
Day 18: ES6+ Features (Part 2)
Destructuring (arrays, objects)
Spread vs rest
Object literal enhancements
Modules (import/export)
Day 19: DOM Manipulation Basics
getElementById, querySelector, etc.
innerText, innerHTML, value, class and style manipulation
Creating/removing elements
Traversing the DOM
Day 20: Events, Event Listeners & Delegation
addEventListener syntax
Event object
Event propagation: bubbling, capturing
Event delegation pattern
Day 21: Project 3 - Quiz App
Multiple-choice quiz
Score calculation
25-Day In-Depth JavaScript Syllabus
Dynamic question rendering
Event-driven UI
Day 22: Asynchronous JavaScript
JS is single-threaded: event loop & callback queue
setTimeout, setInterval
Callback hell and problems
Day 23: Promises & Chaining
Creating and resolving promises
then, catch, finally
Chaining multiple asynchronous tasks
Day 24: Async/Await + Fetch API
async and await usage
Error handling with try...catch
Fetching data from APIs
Real-world API integration
Day 25: Final Project - Weather App with API
Search by city name
Use OpenWeatherMap API
Display temperature, humidity, and weather status
Handle loading and error states