This repository contains my solutions for the 30 Days of JavaScript coding challenge. The original challenge was created by Asabeneh and consists of 30 coding exercises designed to help improve your skills in JavaScript.
Day 01 Introduction
: This challenge provides an introduction to the course and covers basic JavaScript concepts such as variables, and data types.Day 02 Data Types
: This challenge covers data types in JavaScript, including primitive data types, and non-primitive data types.Day 03 Booleans, Operators, and Dates
: This challenge covers booleans and operators in JavaScript, as well as working with dates.Day 04 Conditionals
: This challenge covers conditional statements in JavaScript, including if-else statements, switch statements, and ternary operators.Day 05 Arrays
: This challenge covers arrays in JavaScript, including array methods, iteration, and manipulation.Day 06 Loops
: This challenge covers loops in JavaScript, including for loops, while loops, do-while loops, break, and continue statements.Day 07 Functions
: This challenge covers various aspects of functions, including function declaration, function expression, arrow functions, and self-invoking functions. It also covers different types of parameters in functions, including unlimited parameters in regular and arrow functions, default parameters, and anonymous functions.Day 08 Objects
: This challenge covers scope and objects in JavaScript, including window global object, global scope, and local scope, creating an empty object, creating an objecting with values, getting values from an object, creating object methods, setting new key for an object, and object methodsDay 09 Higher Order Functions
: This challenge covers the concept of higher-order functions, callbacks, returning functions, setting time using setInterval and setTimeout functions, and functional programming methods such as forEach, map, filter, reduce, every, find, findIndex, some, and sort for string, numeric values, and object arrays.Day 10 Sets and Maps
: This challenge covers sets and maps, including creating an empty set, creating a set from an array, adding and deleting an element to a set, checking an element in the set, clearing the set, union, intersection, and difference of sets. It also covers creating an empty map, creating a map from an array, adding and getting values from map, and checking keys in map.Day 11 Destructuring and Spreading
: This challenge covers advanced JavaScript concepts including destructuring arrays and objects, renaming during destructuring, using destructuring during iteration, utilizing the spread or rest operator to copy arrays and objects, and using the spread operator with arrow functions for concise coding.Day 12 Regular Expressions
: This challenge covers creating and working with regular expressions in JavaScript, including creating patterns with RegExp Constructor or without, RegExp parameters such as flags and patterns, using square brackets and escape characters, and working with quantifiers and the caret symbol. It also covers RegExp object methods for testing, matching, and replacing strings.Day 13 Console Object Methods
: This challenge covers the console object methods in JavaScript, such as logging messages with console.log(), displaying tables with console.table(), measuring code performance with console.time(), and more.Day 14 Error Handling
: This challenge covers error handling in JavaScript, including error types and handling, try-catch block, and throwing and catching errors.Day 15 Classes
: This challenge covers creating and instantiating classes in JavaScript, defining constructors, methods, properties with initial values, and using getter, setter, and static methods. It also explores inheritance, including overriding methods.Day 16 JSON
: This challenge covers JSON, a lightweight data-interchange format, including converting JSON to JavaScript objects, using a reviver function with JSON.parse(), converting objects to JSON, and using a filter array with JSON.stringify().Day 17 Web Storages
: This challenge covers HTML5 Web Storage in JavaScript, covering topics such as sessionStorage and localStorage, setting and getting items from localStorage, and clearing the localStorage for different use cases.Day 18 Promises
: This challenge covers the fundamental concepts of Promises in JavaScript, including working with callbacks, utilizing the Promise constructor, making use of the Fetch API, and implementing async and await functionality.Day 19 Closures
: This challenge covers closures in JavaScript, which allow functions to access variables from their outer functions.Day 20 Writing Clean Codes
: This challenge covers JavaScript style guides and coding conventions, including the importance of adhering to a style guide, commonly used style guides like Airbnb, Standard, and Google, and conventions for variables, arrays, functions, loops, objects, conditionals, and classes.Day 21 Document Object Model (DOM)
: This challenge covers the Document Object Model (DOM) and introduces techniques for working with JavaScript, including getting elements by tag name, class name, or ID, using querySelector methods, adding attributes and classes, adding text content to HTML elements using textContent or innerHTML, and adding styles such as color, background color, and font size.Day 22 Manipulating DOM Objects
: This challenge covers the manipulation of Document Object Model (DOM) objects, including creating elements, appending them to parent elements, and removing child elements from parent nodes. It provides hands-on practice in working with the DOM to modify the structure and content of web pages.Day 23 Event Listeners
: This challenge covers the implementation of event listeners in the Document Object Model (DOM), including handling click, double click, and mouse enter events. It also explores retrieving values from input elements, handling input events, blur events, and keyboard events such as keypress, keydown, and keyup. It provides hands-on practice in adding interactivity to web pages through event-driven programming.Day 24 Project Solar System
: This challenge focuses on developing a small application that calculates the weight of an object on a specific planet within the solar system.Day 25 World Countries Data Visualization (Part 1)
: This challenge dives into the visualization of data by using DOM to display the ten most populated countries and the ten most spoken languages in the world. It involves fetching country information from the provided countries.js array of objects and dynamically presenting the data in a visually appealing bar graph format.
-
To run the projects in this repository, you'll need to have a text editor and a web browser installed on your local machine.
-
Install a code editor such as Visual Studio Code.
- To install Visual Studio Code, follow the instructions on the official website.
-
To use the projects in this repository, simply clone the repository to your local machine using the following command:
git clone https://github.com/aamirxshaikh/30-days-of-js
-
After you've cloned the repository to your local machine, you can either open the project directory in your preferred IDE or use a text editor to edit the code.
-
Each day's project is contained in a separate folder, so to run a particular day's project, navigate to that day's folder and open the
index.html
file in your web browser. -
In addition to the browser, you can also use the Quokka extension to quickly run and debug JavaScript code directly in the editor. With Quokka, you can see the output of your code in real-time and easily experiment with different inputs and outputs.
Feel free to contribute to this repository by adding your own custom challenges or improving the existing ones. Simply fork the repository, make your changes, and create a pull request. I'll be happy to review and merge your changes.
This repository is licensed under the MIT License. See the LICENSE file for details.