Learning JavaScript from Scratch! This repository is a structured path to explore JavaScript fundamentals, intermediate concepts, and practical exercises. Each section is designed to reinforce learning through clear examples and reproducible code.
It is built as a progressive journey where every folder adds new knowledge, guiding learners from the basics of syntax and variables to advanced topics like DOM manipulation, asynchronous programming, and testing. The goal is to provide a clear, enjoyable, and practical roadmap for mastering JavaScript.
JavaScript is a flexible programming language that brings interactivity to the web. It lets developers update content dynamically, respond to user actions, and connect with external services, making websites more engaging. As one of the three core web technologies, alongside HTML and CSS, JavaScript runs directly in the browser and works consistently across platforms.
JavaScript also extends beyond the browser with environments like Node.js, enabling developers to build backend systems and full-stack applications. Its ecosystem includes frameworks such as React, Angular, and Vue, which simplify development and improve productivity. With strong community support and continuous evolution, JavaScript remains a key tool for creating everything from small interactive features to large-scale applications.
| Term | Definition |
|---|---|
| Variable | A named storage for data values, declared with let, const, or var. |
| Function | A reusable block of code that performs a specific task and can return data. |
| Object | A collection of key-value pairs used to model complex data structures. |
| Array | An ordered list of values, accessible by index. |
| DOM | Document Object Model, the interface for interacting with HTML elements. |
| Event | An action or occurrence (like a click or keypress) that can trigger code. |
| Scope | The context in which variables and functions are accessible. |
| Promise | An object representing the eventual completion or failure of an async task. |
| Template String | A string enclosed by backticks ` that allows interpolation and multiline text. |
w3schools/This folder contains introductory demos of HTML, CSS, and JavaScript inspired by W3Schools tutorials. It provides simple examples to practice DOM manipulation and inline scripting, serving as foundational exercises that connect JavaScript with core web standards.
W3Schools is a popular online platform that offers accessible tutorials and references for web technologies. It is widely used by beginners and professionals to quickly learn and practice HTML, CSS, and JavaScript through clear examples and interactive exercises.
mouredev/This folder includes comprehensive JavaScript fundamentals and intermediate exercises based on Mouredev’s course material. It covers a wide range of topics such as variables, datatypes, operators, strings, conditionals, arrays, sets, maps, loops, functions, objects, classes, modules, error handling, DOM, debugging, regex, testing, and asynchronous programming. The content is organized step‑by‑step with progressive examples, structured practice files, and documented exercises to ensure consistent learning.
MoureDev is a software developer and educator who creates programming courses and resources for the community. His material emphasizes practical learning, guiding students through JavaScript and other technologies with structured lessons and real-world examples.
playground/This folder serves as an experimental space for exploring advanced JavaScript concepts. It features examples on prototype chains, class inheritance, operator behavior, and DOM manipulation, offering a flexible environment to test ideas and deepen understanding of the language.
The playground is designed as a creative environment where developers can experiment freely. It encourages exploration of advanced JavaScript features, helping learners strengthen their skills by testing unconventional approaches and building deeper insights into the language.
Build a strong foundation by exploring syntax, core concepts, and practical exercises to fully understand the language.
Maintain a structured, reproducible workflow with clear documentation, commit discipline, and accessible examples.
Use this repository as a stepping stone to transition into TypeScript, Node.js, React, React Native, and Expo, aiming to create apps for iOS, Android and Web.
This repository is licensed under the terms of the Apache License 2.0. The license grants permission to use, modify, and distribute the code with proper attribution, while ensuring that improvements and extensions remain open and accessible to the community.
Built with ‘\u{2665}’ (♥) by Jesús Domínguez @jdomingu19