Use this table to navigate by folder and keep appending topics as you learn.
| Day | Folder | Topics (append as you learn) | Notable files |
|---|---|---|---|
| 1 | day1 | Basics, variables (var/let/const), data types, operators, comparisons, logical ops | hello.js, changes.js, datatype.js, operatons.js, logical.js, assignment.js |
| 2 | day2 | Primitives vs non‑primitives, Number/Boolean/null/undefined/String/Symbol, objects/arrays, type conversion | primitives.js, nonPrimitives.js |
| 3 | day3 | Arrays (push/pop/concat/slice/includes), shallow vs hard copy, conditionals | array.js, conditional.js |
| 4 | day4 | Loops: while, do…while, for; array iteration and transforms | loops.js |
| 5 | day5 | Functions, nested functions, HOF basics, arrow functions, break/continue | function.js, loops.js |
| 6 | day6 | HOF, closures, constructor functions, prototypes, prototype chaining | function.js, prototype.js |
| 7 | day7 | OOP (classes, inheritance, encapsulation, polymorphism), static, getters/setters, new.target, truthy/falsey |
oop.js, oops-master.js, error.js, assignment.js, get-set.js |
| 8 | day8 | Utility functions, array helpers (reverse/max/dedupe), flat(Infinity) |
assign.js, assign3.js |
| 9 | day9 | map/filter/reduce chaining, ES6 Map |
assign-higher.js, assignLoop.js, map-filter-reduce.js |
| 10 | day10 | this in objects, inner functions, longest string via reduce |
assign.higher.js, nested-assign.js |
| 11 | day11 | Constructors/prototypes, inheritance, # private fields, method overriding, DOM query |
assign-const.js, assign-proto.js, assign-encap.js, assign-oops.js, dom/index.html, dom/dom.js |
| 12 | day12 | DOM: events, traversal, create/append/remove, delegation, forms, DOMContentLoaded, BOM | dom.html, script.js, index.html |
| 13 | day13 | Closures, factory functions, DOM practice, Promises (then/catch), setTimeout |
closure.js, factory-funct.js, promises.js, achn.js, practice/pract/index.html, practice/pract/script.js |
| 14 | day14 | Modules (ESM & CommonJS), async/await, Promise.all, generators, prototypes, bind/call/apply |
es6.js, appM.js, es6-C.js, appC.js, asynAwait.js, asynAwait2.js, generator-iterator.js, proto-inh.js, this.js |
| 15 | day15 | Mini‑project: To‑Do (add/toggle/delete, localStorage) | to-do/index.html, to-do/style.css, to-do/script.js |
| 16 | day16 | Mini‑project: To‑Do v2 (refactor, event/model tweaks) | to-do list/index.html, to-do list/style.css, to-do list/script.js |
| 17 | day17 | Mini‑project: Weather App (fetch, async/await, errors, Kelvin→°C) | weather-app/index.html, weather-app/style.css, weather-app/script.js |
| 18 | day18 | Mini‑project: E‑commerce Cart (add/remove, totals, checkout, storage) | Ecommerce/index.html, Ecommerce/style.css, Ecommerce/script.js |
| 19 | day19 | Mini‑project: Expense Tracker (add/delete, reduce total, storage) | expense-tracker/index.html, expense-tracker/style.css, expense-tracker/script.js |
| 20 | day20 | Mini‑project: Quiz App (flow, weighted scoring, restart) | quiz-application/index.html, quiz-application/style.css, quiz-application/script.js |
- Node scripts:
node <path-to-js-file>(e.g.,node day7/oop.js) - Browser demos: open the corresponding
index.html(Live Server recommended)