Skip to content

This repository hosts a 30-Day JavaScript Challenge aimed at enhancing your proficiency in both fundamental and advanced JavaScript concepts. Each day presents a new challenge covering a wide range of JavaScript topics.

Notifications You must be signed in to change notification settings

namankoolwal/30-days-js-challenge

Repository files navigation

30 Days Of Javascript Challenge

Day 1- Variables And Data Types

Achievement:

By the end of these activities, you will:

Know how to declare variables using var , let , and const .

  • Understand the different data types in JavaScript. Be able to use the typeof operator to identify the data of a variable.
  • Understand the concept of variable reassignment and the immutability of const variables.

Day 2- Operators

Achievement:

By the end of these activities, students will:

  • Understand and use arithmetic operators to perform basic calculations.
  • Use assignment operators to modify variable values.
  • Compare values using comparison operators.
  • Combine conditions using logical operators.
  • Use the ternary operator for concise conditional expressions.

Day 3- Control Structure

Achievement:

By the end of these activities, students will:

  • Implement and understand basic if-else control flow.

  • Use nested if-else statements to handle multiple conditions.

  • Utilize switch cases for control flow based on specific values.

  • Apply the ternary operator for concise condition checking.

  • Combine multiple conditions to solve more complex problems.

Day 4- Loops

Achievement:

By the end of these activities, students will:

  • Understand and use for loops to iterate over a sequence of numbers.

  • Utilize while loops for iteration based on a condition.

  • Apply do...while loops to ensure the loop body is executed at least once.

  • Implement nested loops to solve more complex problems.

  • Use loop control statements ( break and continue ) to control the flow of loops.

Day 5- Functions

Achievement:

By the end of these activities, students will:

  • Understand and define functions using function declarations, expressions, and arrow functions.
  • Use function parameters and default values effectively.
  • Create and utilize higher-order functions.
  • Apply functions to solve common problems and perform calculations.
  • Enhance code reusability and organization using functions.

Day 6-Arrays

Achievement:

By the end of these activities, students will:

  • Create and manipulate arrays using various methods.
  • Transform and aggregate array data using map , filter , Iterate over arrays using loops and iteration methods.
  • Understand and work with multi-dimensional arrays. and reduce .

Day 7- Objects

Achievement

By the end of these activities, students will:

  • Create and manipulate objects with properties and methods.
  • Understand and use the this keyword in object methods.
  • Work with nested objects and arrays of objects.
  • Iterate over an object's properties using loops and built-in methods.

Day 8- ES6+ Features

Achievement:

By the end of these activities, students will:

  • Understand and use template literals for string interpolation and multi-line strings.
  • Apply destructuring to extract values from arrays and objects.
  • Utilize spread and rest operators for array manipulation and function arguments.
  • Define functions with default parameters.
  • Create objects using enhanced object literals, including methods and computed property names.

Day 9- DOM Manipulation

Achievement:

By the end of these activities, students will:

  • Select and manipulate DOM elements using JavaScript.
  • Create and append new elements to the DOM.
  • Remove elements from the DOM.
  • Modify attributes and classes of HTML elements.
  • Add and handle events to make web pages interactive.

Day 10- Event Handeling

Achievement:

By the end of these activities, students will:

  • Add and handle basic events like click, double-click, mouseover; mouseout, keydown, and keyup.
  • Understand and handle form events.
  • Implement event delegation to manage events on dynamically added elements.
  • Make web pages interactive by responding to various user actions.

Day 11- Promises And Async:Await

Achievement:

By the end of these activities, students will:

  • Understand and create promises, including handling resolved and rejected states.
  • Chain multiple promises to sequential asynchronous operations.
  • Use async/ await to handle asynchronous code more readably.
  • Fetch data from public APIs using promises and async/await.
  • Manage multiple concurrent promises using Promise. all and Promise. race.

Day 12- Error Handeling

Achievement:

By the end of these activities, students will:

  • Understand and implement basic error handling using try-catch blocks.
  • Use finally blocks to execute code regardless of the try-catch outcome.
  • Create and use custom error classes.
  • Handle errors in promises using . catch() and within async functions using try-catch.
  • Implement graceful error handling when making network requests with the fetch API.

Day 13- Modules

Achievement:

By the end of these activities, students will:

  • Create and export functions, objects, and constants using modules.
  • Import modules using named and default imports.
  • Use third-party modules installed via npm.
  • Understand the basics of module bundling (optional).

Day 14- Classes

Achievement:

By the end of these activities, students will:

  • Define and use classes with properties and methods.
  • Implement inheritance to extend classes.
  • Utilize static methods and properties.
  • Apply getters and setters for encapsulation.
  • Understand and use private fields in classes (optional).

Day 15- Closures

Achievement:

By the end of these activities, students will:

  • Understand and create closures in JavaScript.
  • Use closures to maintain private state and create encapsulated modules.
  • Apply closures in practical scenarios like generating unique IDs and memoization.
  • Use closures in loops to capture and use variables correctly.

Day 16- Recursion

Achievement:

By the end of these activities, students will:

  • Understand and implernent basic recursion.
  • Apply recursion to solve problems with arrays and strings.
  • Use recursiffl for searching and counting el«nents in arrays.
  • Perform tree traversal and calculate tree depth using recursion (optional).

Day 17- Data Structure

Achievement:

By the end of these activities, students will:

  • Implement and use linked lists for dynamic data storage.
  • Use stacks for LIFO (Last-ln-First-Out) operations and reverse data.
  • Use queues for FIFO (First-ln-First-Out) operations and simulate real-world scenarios.
  • Implement binary trees for hierarchical data storage and traversal.
  • Understand and use graphs for network representations and pathfinding (optional).

Day 18- Algorithms

Achievement:

By the end of these activities, students will:

  • Implement and understand cornmon sorting algorithrns.
  • Implement and understand common searching algorithms.
  • Solve string manipulation problems using algorithms.
  • Perform array operations using algorithms.
  • Apply dynamic programming to solve complex problems (optional).

Day 19- Regular Expression

Achievement:

By the end of these activities, students will:

  • Understand and create basic regular expressions.
  • Use character classes and quantifiers in regular expressions.
  • Implement grouping and capturing in regular expressions.
  • Apply assertims and toundafies in regular expressions.
  • Use regular expressions for practical applications like validating passwords and URLS.

Day 20- LocalStorage and SessionStorage

Achievement:

By the end of these activities, students Will:

  • Understand how to use localStorage and sessionstorage for persistent and session-specific data storage.
  • Save, retrieve, and remove data frorn both localStorage and sessionstorage .
  • Inwement form data storage using localStorage and sessionstorage .
  • Compare and contrast the use cases for localStorage and sessionstorage .

Day 21- Leetcode Easy

Achievement:

By the end of these activities, students Will:

  • Solve common LeetCode problerns.
  • Apply problem-solving skills to implement algorithms.
  • Understand and handle edge cases in algorithmic solutions.
  • Gain confidence in solving easy-level coding challenges on LeetCode.



Follow Me On Linkdin || Instagram

About

This repository hosts a 30-Day JavaScript Challenge aimed at enhancing your proficiency in both fundamental and advanced JavaScript concepts. Each day presents a new challenge covering a wide range of JavaScript topics.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published