This repository documents my learning journey through a comprehensive JavaScript course. It includes code examples, challenges, and projects covering modern JavaScript from the fundamentals to more advanced topics like DOM manipulation and how JavaScript works behind the scenes.
This repository is structured into several sections, each focusing on different concepts and culminating in small projects.
Covers the absolute basics of the JavaScript language.
-Topics: Values and Variables, Data Types, let, const, and var, Basic Operators, Operator Precedence, Strings and Template Literals, if/else Statements, Type Conversion and Coercion, Truthy and Falsy Values, Equality Operators, Boolean Logic, switch Statement, The Conditional (Ternary) Operator.
- Challenges:
- BMI Calculator (2 versions)
- Comparing Team Scores
- Tip Calculator
Dives deeper into core concepts.
-Topics: Strict Mode, Functions (Declarations, Expressions, Arrow), Arrays and Array Methods, Objects and Object Methods, for and while loops.
- Challenges:
- Average Score Calculator
- Tip Calculator (using arrays and loops)
- BMI Calculator (using objects)
Focuses on practical developer skills. -Topics: Using a Debugger, Solving problems. -Project: Temperature amplitude calculator.
Basic HTML and CSS fundamentals. -Topics: HTML structure, CSS styling, and layout basics.
A DOM manipulation project. -Features: -Guess a number between 1 and 20. -Score tracking and highscore. -Game reset functionality. -Interactive UI with styling.
DOM manipulation project with modal windows. -Features: -Show and hide a modal window. -Close modal with a button, by clicking the overlay, or pressing the 'Escape' key. -Responsive design.
A two-player dice game built with DOM manipulation. -Features: -Roll a dice to accumulate points. -'Hold' functionality to save the score. -The first player to reach 100 points wins. -Game reset functionality. -Visual dice images.
Explores how JavaScript works under the hood.
-Topics: The JavaScript Engine and Runtime, Execution Contexts, The Scope Chain, Hoisting and the TDZ, The this Keyword, Regular vs. Arrow Functions, and Object References.
Modern JavaScript data structures and operators. -Topics: Destructuring Arrays and Objects, Spread Operator, Rest Pattern, Short Circuiting, Nullish Coalescing, Logical Assignment Operators, for-of Loop, Enhanced Object Literals, Optional Chaining, Sets and Maps.
Advanced function concepts and techniques. -Topics: Default Parameters, Passing Arguments, First-Class and Higher-Order Functions, Functions Returning Functions, Call and Apply Methods, Bind Method, Immediately Invoked Function Expressions (IIFE), Closures.
Array methods and the Bankist application. -Topics: Array Methods (map, filter, reduce, find, some, every, flat, sort), Creating and Filling Arrays, Array Methods Practice. -Project: Bankist App - A simple banking interface demonstrating array methods.
Working with numbers, dates, and timers. -Topics: Converting and Checking Numbers, Math and Rounding, Remainder Operator, Numeric Separators, BigInt, Creating Dates, Operations with Dates, Internationalizing Dates and Numbers, Timers. -Project: Enhanced Bankist App with dates, number formatting, and timers.
A collection of 11 coding challenges covering various JavaScript concepts:
- Challenge 1-11: Progressive difficulty challenges testing different aspects of JavaScript programming including functions, arrays, objects, and DOM manipulation.
- Modern web browser
To run any of the projects or view the examples:
- Clone this repository to your local machine.
- Navigate to the project folder you are interested in (e.g.,
04-Guess-My-Number/). - Open the
index.htmlfile in your web browser.