This repository contains a comprehensive set of notes, code examples, and mini-projects designed to teach fundamental JavaScript concepts, focusing heavily on DOM manipulation and API interaction. It's structured as a progressive learning path, building from basic syntax to more advanced asynchronous operations.
This material is ideal for:
- Beginners who are just starting their journey with JavaScript.
- Web Developers looking to solidify their understanding of core JavaScript concepts and browser interaction.
- Anyone seeking a practical, hands-on approach to learning modern JavaScript.
This training covers a wide range of essential JavaScript topics, including:
This session lays the groundwork for understanding how JavaScript interacts with web pages.
- The
documentObject: How JavaScript represents your HTML page. - Selecting Elements: Using
querySelector()to target specific HTML elements. - Event Handling: Making your pages interactive with
addEventListener()(e.g., clicks, inputs, hovers). - Manipulating Content: Reading and changing text (
.textContent) and styles (.style). - Basic Element Interaction: Creating a button that changes text and style on click.
- Debugging: Utilizing
console.log()effectively.
Building on the basics, this session dives into core JavaScript programming constructs and more dynamic DOM interactions.
- Data Types & Type Coercion: Understanding JavaScript's loosely typed nature and automatic type conversions (
"5" + 5vs."5" - 5). - Strict vs. Loose Equality: The difference between
==and===. - Handling User Input: Converting string input values to numbers (
Number(),parseInt()). - Functions:
- Declaration, expression, and modern Arrow Functions (ES6).
- Using functions to refactor and make code reusable with DOM manipulation.
- Arrays: Storing collections of data.
- Dynamic DOM Manipulation:
createElement(): Creating new HTML elements dynamically.appendChild(): Adding elements to the webpage.remove()/removeChild(): Deleting elements.- Modifying Attributes & Classes:
setAttribute(),getAttribute(),classList.add(),classList.remove(),classList.toggle().
- Object Manipulation:
- Creating and accessing properties of JavaScript objects.
- Working with Arrays of Objects for structured data.
- Mini-Project: Displaying User Cards dynamically.
- The Event Object: Accessing event details (e.g.,
event.target,event.preventDefault()). - Template Literals (ES6): Modern way to create strings with embedded expressions (
``). - Essential Array Methods:
forEach,map,filter,find,some,every. - Mini-Project: Product Filter/Search (combining arrays, events, DOM).
- Homework: Build a Simple Expense Tracker (Add, Display, Filter, Total, Delete).
This session introduces how JavaScript communicates with external services, a cornerstone of modern web development.
- What is an API? Understanding Application Programming Interfaces conceptually (the "waiter" analogy).
- JSON (JavaScript Object Notation):
- The standard data format for APIs.
JSON.parse(): Converting JSON strings to JavaScript objects.JSON.stringify(): Converting JavaScript objects to JSON strings.
- Fetch API: The modern way to make network requests.
async/await: Handling asynchronous operations gracefully.- Making GET requests to retrieve data.
- Mini-Project 1: Display Users from API: Fetching and rendering user data.
- Error Handling: Using
try...catchblocks and checkingresponse.okfor robust code. - Mini-Project 2: Posts Viewer: Fetching and displaying blog post data.
- Sending Data (POST Requests):
- Configuring
fetch()for POST requests (method,headers,body).
- Configuring
- Mini-Project 3: Create Post Form: Submitting new data to an API.
- Final Project: Weather App: A comprehensive project integrating all learned concepts (API key setup, display, error handling, loading states).
- Homework: Build a Random User Generator (fetch user profiles, display details, loading, error handling, bonus for multiple users).
By the end of this training, you will have a solid grasp of:
- ✅ Core JavaScript syntax and data structures
- ✅ Effective DOM manipulation for interactive web pages
- ✅ Handling user events and input
- ✅ Using functions and array methods for efficient coding
- ✅ Understanding and working with APIs
- ✅
async/awaitfor asynchronous operations - ✅ JSON data format and conversion
- ✅ Implementing robust error handling
- ✅ Building real-world interactive web components
Each session's code examples and mini-projects are organized to follow the learning progression. You can:
- Clone the repository:
git clone <repository-url> - Navigate to session folders: Explore the JavaScript files (
.js) and corresponding HTML files (.html) (if applicable) for each part. - Open HTML files in your browser: To see the DOM manipulation and API examples in action.
- Experiment: Modify the code, try out the exercises, and build your own small projects!