A structured repository for learning and practicing modern JavaScript through theory, coding exercises, workshops, tricky questions, and revision.
javascript-practice
│
├── js-string
├── js-numbers
├── js-array
├── js-object
├── js-function
│
├── js-scope
├── js-closure
├── js-this
├── js-prototype
├── js-class
├── js-async
├── js-promise
├── js-event-loop
├── js-module
├── js-error-handling
├── js-dom
├── js-web-api
│
├── js-problem-solved
├── js-tricky-questions
├── workshop
│
└── README.md
| Topic | Days | Practiced Files / Source Code |
|---|---|---|
| JS String | Day 1 | 📁 methods.js 📁 search.js 📁 string.js 📁 regular-expressions.js 📁 string-searching-method-practice.js |
| JS Numbers | Day 2 | 📁 methods.js 📁 properties.js 📁 bigint.js 📁 bitwise.js |
| JS Functions | Day 3 | 📁 function.js 📁 generators.js 📁 generators-real-usecase.js |
| JS Arrays | Day 4-6 | 📁 array.js 📁 methods.js 📁 shallow-copy.js 📁 shopping-list.js 📁 golf-score-translator.js 📁 lab-lunch-picker-program.js 📁 callback.js |
| JS Objects | Day 6-8 | 📁 object.js 📁 properties.js 📁 json.js |
| JS Loops | Day 8-10 | 📁 loop.js |
| JS Date | Coming Soon | 📁 js-date/ |
| Workshop | Concepts Practiced | Source Code |
|---|---|---|
| Cargo Manifest Validator | Objects, Validation, Functions | 📁 cargo-manifest-validator.js |
| Quiz Game | Objects, Arrays, Random Selection | 📁 quiz-game.js |
| Recipe Tracker | Objects, Arrays, Functions | 📁 recipe-tracker.js |
| Record Collection | Objects, Arrays, CRUD Operations | 📁 record-collection.js |
| Space Mission Roster | Arrays, Objects, Sorting, Validation, Chunking | 📁 space-mission-roster.js |
| Traffic Light Sequencer | Loops, State Management | 📁 traffic-light-sequencer.js |
| Sentence Analyzer | Loops, String Processing | 📁 workshop-sentence-analyzer.js |
| Word Counter | Loops, String Processing | 📁 workshop-word-counter.js |
| Longest Word Finder | Loops, String Processing | 📁 longest-word-finder.js |
| Heritage Library Catalog | Objects, Arrays, String Processing, Data Parsing, Validation, Search, JSON, CSV Export | 📁 heritage-library-catalog.js |
| Profile Lookup | Objects, Arrays, for...of Loop, Object Methods, hasOwnProperty(), Dynamic Property Access, Search Algorithm | 📁 profile-lookup.js |
| Festival Crowd Flow Simulator | Objects, Arrays, Loops, Functions, Queue Management, Simulation Logic, Overflow Rerouting, Data Aggregation | 📁 festival-crowd-flow-simulator.js |
| Pyramid Generator | Loops, String Manipulation, Pattern Printing, Conditional Logic, Functions | 📁 pyramid-generator.js |
| Gradebook App | Functions, Arrays, Loops, Conditional Statements, String Templates, Average Calculation | 📁 gradebook-app.js |
| Smart Pantry Restocker | Objects, Arrays, Loops, Functions, Inventory Management, Stock Tracking, Conditional Logic, Restocking Automation, Data Processing | 📁 smart-pantry-restocker.js |
| Story Fragment Restoration | Arrays, Objects, Loops, Functions, Sorting, Deduplication, Data Cleaning, Gap Detection, String Processing, Immutability | 📁 story-fragment-restoration.js |
| Playlist Remix Engine | A JavaScript data-processing project focused on practicing arrays, objects, loops, functions, sorting, deduplication, data cleaning, gap detection, string processing, and immutability | 📁 playlist-remix-engine.js |
| Library Manager | Working with array methods (map, filter, reduce, join) | 📁 library-manager.js |
| Build a Book Organizer | use filter() and sort() array method | 📁 library-manager.js |
| Rock, Paper, Scissors Game | A simple interactive Rock, Paper, Scissors game using JavaScript. | 📁 rps-game.html 📁 rps-game.js |
| Music Instrument Filter | Array Methods & DOM Manipulation | 📁 music-instrument-filter.js |
| Build a Set of Football Team Cards | Object Destructuring, Array Methods & DOM Manipulation | 📁 football-team-cards.js |
| Build Customer Complaint Form | DOM Selection, Event Handling,Form Validation and Dynamic Feedback | 📁 customer-complaint-form.js |
| Music Player WorkShop | JavaScript DOM manipulation, Web Audio API, track switching, and accessible UI experience | 📁 music-player.js 🔴 Live Preview |
| Build a Drum Machine | JavaScript DOM manipulation, Web Audio API and others | 📁 drum-machine.js 🔴 Live Preview |
| Build a Voting System | build a voting system that uses Map to create a poll and Set to prevent duplicate voting. | 📁 build-a-voting-system.js |
| Build a Todo App using Local Storage | Create Todo app using JavaScript DOM manipulation and Local Storage | 📁 todo-app.js |
| Build a Bookmark Manager App | Uses localStorage for data persistence, JSON for data conversion, and DOM manipulation along with event listeners for controlling the user interface. | 📁 bookmark-manager-app.js |
| Build a Shopping Cart | A fully functional interactive shopping cart built with JavaScript classes, DOM manipulation, and dynamic pricing logic for taxes and subtotals | 📁 shopping-cart.js |
| Build a Project Idea Board | A structured project idea management tool built with JavaScript classes to track project statuses, pin/unpin ideas, and format board summaries | 📁 project-idea-board.js |
| Category | Files |
|---|---|
| String | 📁 cache-illusion.js 📁 emoji-length.js 📁 empty-array-concatenation.js 📁 immutability-and-memory.js 📁 others.js 📁 sneaky-substring.js |
| Topic | Files |
|---|---|
| Revision Practice | 📁 rev.assignment-operator.js 📁 rev.search.js 📁 rev.string.js |
| # | Problem | File |
|---|---|---|
| 1 | Target Index Search | lookup-with-binary-search.js |
| 2 | Count Elements Greater Than Previous Average | count-elements-greater-than-previous-average.js |
| 3 | Find the Smallest Missing Positive Integer | find-smallest-missing-positive-integer.js |
| 4 | Check Palindrome by Filtering Non-Letters | check-palindrome-filter-non-letters.js |
| 5 | Check for Non-Identical String Rotation | check-non-identical-string-rotation.js |
| 6 | Find First Occurrence | first-occurrence-in-event-code-log.js |
| 7 | Maximum Non-Overlapping Intervals | maximum-non-overlapping-intervals.js |
| 8 | Min Tracking Stack | min-tracking-stack.js |
| 9 | Validate Properly Nested Brackets | validate-properly-nested-brackets.js |
| 10 | One-Pass Removal of k-th Node from End | one-pass-removal-kth-from-end.js |
| 11 | Count Number Pairs | count-number-pairs.js |
- Master JavaScript Fundamentals
- Understand Arrays, Objects, Functions, and Loops
- Practice String & Number Manipulation
- Learn Regular Expressions
- Solve Real-world JavaScript Workshops
- Improve Problem Solving Skills
- Build Strong JavaScript Foundations for DSA & Backend Development
- Maintain Daily Coding Consistency
- JavaScript (ES6+)
- Node.js
- Git & GitHub
- VS Code