Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

JavaScript notes, projects & insights inspired by Chai aur Code & Hitesh Choudhary — learn modern JS the right way.

Notifications You must be signed in to change notification settings

saiprasadm45/JavaScript101

Repository files navigation

☕ JavaScript101

Welcome to JavaScript101 — my personal learning repository where I document, practice, and share everything I'm learning about JavaScript, inspired by the amazing content from Chai aur Code.


📚 What's Inside?

This repo is a growing collection of:

  • Code snippets from lessons and exercises
  • 🧠 Notes and explanations for key concepts
  • 🔍 Mini projects and experiments
  • 🧪 Challenges and problem-solving practice

Whether you're a beginner or brushing up your JS skills, feel free to explore and learn along with me!


🛠 Topics Covered (So Far)

📌 JavaScript Fundamentals

  • ✅ Variables (let, const, var)
  • 🔢 Data Types (Primitive & Reference)
  • ➕ Operators (Arithmetic, Comparison, Logical)
  • 🔄 Type Conversion & Type Coercion
  • ✅ Truthy & Falsy Values
  • 🧠 Control Flow (if/else, switch)
  • 🔁 Loops (for, while, do...while, for...of)

📦 Functions & Scope

  • 🧭 Function Declarations & Expressions
  • 🪝 Arrow Functions
  • 🔄 Callback Functions
  • 📦 Parameters, Arguments, and Return Values
  • 🔁 Scope (Global, Local, Block)
  • 🧠 Closures
  • 📚 Hoisting

🧱 Data Structures

  • 📋 Arrays (Methods, Iteration, Destructuring)
  • 🧳 Objects (Properties, Methods, Destructuring)
  • 🗃️ Maps, Sets, WeakMap, WeakSet

🎯 DOM Manipulation

  • 🌐 Selecting Elements (getElementById, querySelector)
  • 🛠 Modifying Content & Styles
  • 🔁 Looping through DOM elements
  • 💬 Working with Forms and Input Fields
  • 🏗 Creating, Appending, Removing Elements

🖱 Events & Event Handling

  • ⌨️ Keyboard, Mouse, Input Events
  • 🧩 Event Listeners (addEventListener)
  • 📦 Event Object
  • 🧵 Event Bubbling & Delegation
  • ✅ Preventing Default Behavior

🚀 Advanced JavaScript

  • 💥 ES6+ Features (Destructuring, Spread, Rest, Template Literals, etc.)
  • 🌀 Higher-Order Functions
  • 🔗 Array Methods (map, filter, reduce, find, some, every)
  • 🧱 The this keyword
  • 🧪 Prototypes & Inheritance
  • 🔧 Object-Oriented Programming (OOP)
  • 🎭 Classes (constructor, super, inheritance)
  • 🧠 The Execution Context & Call Stack
  • 🔍 JavaScript Engine & Memory Management

⏳ Asynchronous JavaScript

  • 🕰 setTimeout, setInterval
  • 📦 Promises
  • ⚙️ Async & Await
  • 🛑 Error Handling in Async Code
  • 🧩 Fetch API & Working with APIs
  • 🌐 JSON & Data Parsing

🧪 Error Handling & Debugging

  • 🐞 Console Methods
  • 🧯 try...catch blocks
  • 📌 Throwing Custom Errors
  • 🧭 Debugging with DevTools

🧼 Modern Best Practices

  • 📏 Clean Code Principles
  • ✅ Linting & Formatting
  • 🧪 Writing Maintainable Functions
  • 🚦 Code Modularity
  • 🔍 Writing Reusable Components

💻 Tooling & Ecosystem (Coming Soon)

  • 📦 npm & package.json
  • ⚙️ Module Bundlers (Webpack, Vite, etc.)
  • 🧪 Testing Basics (Jest, Mocha)
  • 🔗 Version Control (Git basics)

🧪 JavaScript Projects Covered

A categorized list of JavaScript projects built during my learning journey. These are organized based on complexity and feature usage (Basic DOM, Medium, and Advanced).


🟢 Basic DOM Projects

🎨 Random Background Color Changer

  • Changes the background color randomly on button click.

🕒 Digital Clock

  • A live digital clock that updates every second using setInterval.

✍️ Stringify Utility

  • A small utility to:
    • Convert any string to uppercase or lowercase
    • Get the length of the string

🟡 Medium DOM Projects

🧮 BMI Calculator

  • Takes height and weight input to calculate and display BMI.

🎯 Guess the Number

  • A simple game where users guess a randomly generated number with feedback.

📱 Responsive Navbar / Carousel Image

  • A responsive navbar with toggle behavior or an image carousel with navigation.

🧊 Div Slider

  • A sliding set of <div>s that transition horizontally on click.

💸 Continuous Price Section

  • A continuously scrolling price ticker section (like stock prices or crypto values).

🔴 Advanced DOM Projects

🌈 Random BG Generator with Start/Stop Buttons

  • Randomly changes background colors using setInterval.
  • Includes:
    • A Start button to begin the color changes.
    • A Stop button that uses clearInterval to halt the color changes.

⌨️ Key Identifier

  • Captures key presses using the keydown event.
  • Displays:
    • The key pressed
    • The key code
    • The physical key (e.code)

🚧 More advanced projects are on the way as I continue learning and exploring new features in JavaScript!



🚀 How to Use

Clone the repo and explore the folders:

git clone https://github.com/saiprasadm45/JavaScript101
cd javascript101
---
## 🎯 My Goal
To build a strong foundation in JavaScript and become confident in writing clean, efficient, and modern JS code. This repo is my digital notebook — raw, real, and always evolving.
---
## 🙌 Credits
Big thanks to [Chai aur Code](https://www.youtube.com/@chaiaurcode) for making JavaScript fun and accessible. If you're learning too, definitely check out their channel!

---

## 📬 Connect

If you have suggestions, questions, or just want to say hi — feel free to reach out or open an issue!

About

JavaScript notes, projects & insights inspired by Chai aur Code & Hitesh Choudhary — learn modern JS the right way.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /