{"id":15039727,"url":"https://github.com/mouredev/hello-javascript","last_synced_at":"2025-05-13T21:06:03.530Z","repository":{"id":248013661,"uuid":"822506242","full_name":"mouredev/hello-javascript","owner":"mouredev","description":"Curso para aprender el lenguaje de programación JavaScript desde cero y para principiantes. 45 clases, +6 horas en vídeo y 130 ejercicios.","archived":false,"fork":false,"pushed_at":"2025-03-31T19:20:57.000Z","size":609,"stargazers_count":4949,"open_issues_count":4,"forks_count":914,"subscribers_count":98,"default_branch":"main","last_synced_at":"2025-04-10T16:41:58.002Z","etag":null,"topics":["ecmascript","javascript","javascript-vanilla","js","nodejs","tutorial","vanilla-javascript","vanilla-js"],"latest_commit_sha":null,"homepage":"https://mouredev.link/javascript","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mouredev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-01T09:30:17.000Z","updated_at":"2025-04-10T15:33:49.000Z","dependencies_parsed_at":"2024-07-11T22:46:14.711Z","dependency_job_id":"a25905f9-5791-4765-a878-fa441daae487","html_url":"https://github.com/mouredev/hello-javascript","commit_stats":null,"previous_names":["mouredev/hello-javascript"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mouredev%2Fhello-javascript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mouredev%2Fhello-javascript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mouredev%2Fhello-javascript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mouredev%2Fhello-javascript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mouredev","download_url":"https://codeload.github.com/mouredev/hello-javascript/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251311332,"owners_count":21569009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ecmascript","javascript","javascript-vanilla","js","nodejs","tutorial","vanilla-javascript","vanilla-js"],"created_at":"2024-09-24T20:43:44.554Z","updated_at":"2025-04-28T12:11:26.997Z","avatar_url":"https://github.com/mouredev.png","language":"JavaScript","readme":"# Hello JavaScript\n\n[![JavaScript](https://img.shields.io/badge/JavaScript-ES6+-yellow?style=for-the-badge\u0026logo=javascript\u0026logoColor=white\u0026labelColor=101010)](https://developer.mozilla.org/es/docs/Web/JavaScript) [![NodeJS](https://img.shields.io/badge/NODEJS-v20+-green?style=for-the-badge\u0026logo=nodedotjs\u0026logoColor=white\u0026labelColor=101010)](https://nodejs.org/)\n\n## Curso para aprender el lenguaje de programación JavaScript desde cero y para principiantes\n\n![](./Images/header.jpg)\n\n### Proyecto realizado durante emisiones en directo desde [Twitch](https://twitch.tv/mouredev)\n\u003e ##### Si consideras útil el curso, apóyalo haciendo \"★ Star\" en el repositorio. ¡Gracias!\n\n## 🆕 NUEVO: Curso Intermedio [Finalizado]\n\n\u003ca href=\"https://twitch.tv/mouredev\"\u003e\u003cimg src=\"./Images/intermediate.jpg\" style=\"height: 50%; width:50%;\"/\u003e\u003c/a\u003e\n\n### Curso de fundamentos intermedio (continuación del desde cero). \n\n* Clase 1 [29/01/2025] - Funciones avanzadas\n\t* [Vídeo](https://www.twitch.tv/videos/2403685765?t=00h08m45s)\n\t* [Código](./Intermediate/00-advanced-functions.js)\n\t* [Ejercicios](./Intermediate/01-advanced-functions-exercises.js)\n\n* Clase 2 [05/02/2025] - Estructuras avanzadas\n\t* [Vídeo](https://www.twitch.tv/videos/2403685940?t=00h15m32s)\n\t* [Código](./Intermediate/02-advanced-structures.js)\n\t* [Ejercicios](./Intermediate/03-advanced-structures-exercises.js)\n\n* Clase 3 [12/02/2025] - Objetos y Clases avanzadas\n\t* [Vídeo](https://www.twitch.tv/videos/2403685993?t=00h21m33s)\n\t* [Código Objetos](./Intermediate/04-advanced-objects.js)\n\t* [Código Clases](./Intermediate/05-advanced-classes.js)\n\t* [Ejercicios](./Intermediate/06-advanced-objects-classes-exercises)\n\n* Clase 4 [19/02/2025] - Programación asíncrona\n\t* [Vídeo](https://www.twitch.tv/videos/2403686047?t=00h22m48s)\n\t* [Código](./Intermediate/07-async.js)\n\t* [Ejercicios](./Intermediate/08-async-exercises.js)\n\n* Clase 5 [26/02/2025] - Manejo de APIs\n\t* [Vídeo](https://www.twitch.tv/videos/2403686091?t=00h17m25s)\n\t* [Código](./Intermediate/09-apis.js)\n\t* [Ejercicios](./Intermediate/10-apis-exercises.js)\n\n* Clase 6 [06/03/2025] - Manejo del DOM\n\t* [Vídeo](https://www.twitch.tv/videos/2403686130?t=00h11m52s)\n\t* [Código](./Intermediate/11-dom.js)\n\t* Ejemplo simple: [HTML](./Intermediate/12-dom-example.html) - [JS](./Intermediate/13-dom-example.js)\n\t* Ejemplo lista de tareas: [HTML](./Intermediate/14-tasklist.html) - [JS](./Intermediate/15-tasklist.js)\n\t* [Ejercicios](./Intermediate/16-dom-exercises.js)\n  \n* Clase 7 [12/03/2025] - Debug, Regex y Testing\n    * [Vídeo](https://www.twitch.tv/videos/2420494093?t=00h21m55s)\n    * Debug: [Código](./Intermediate/17-debugging.js) - [Ejercicios](./Intermediate/18-debugging-exercises.js)\n    * Regex: [Código](./Intermediate/19-regex.js) - [Ejercicios](./Intermediate/20-regex-exercises.js)\n    * Testing: [Código](./Intermediate/21-testing.js) - [Test](./Intermediate/22-testing.test.js) - [Ejercicios](./Intermediate/23-testing-exercises.js)\n\n## Clases en vídeo\n\n### Curso de fundamentos desde cero\n\n\u003ca href=\"https://youtu.be/1glVfFxj8a4\"\u003e\u003cimg src=\"http://i3.ytimg.com/vi/1glVfFxj8a4/maxresdefault.jpg\" style=\"height: 50%; width:50%;\"/\u003e\u003c/a\u003e\n\n* [Introducción](https://youtu.be/1glVfFxj8a4)\n* [1 - Contexto](https://youtu.be/1glVfFxj8a4?t=174)\n* [2 - Historia](https://youtu.be/1glVfFxj8a4?t=322)\n* [3 - JavaScript y Java](https://youtu.be/1glVfFxj8a4?t=665)\n* [4 - Utilización](https://youtu.be/1glVfFxj8a4?t=931)\n* [5 - Especificación ECMAScript](https://youtu.be/1glVfFxj8a4?t=1017)\n* [6 - Motor V8](https://youtu.be/1glVfFxj8a4?t=1293)\n* [7 - Referencia](https://youtu.be/1glVfFxj8a4?t=1403)\n* [8 - Ejercicios prácticos](https://youtu.be/1glVfFxj8a4?t=1621)\n* [9 - Versión](https://youtu.be/1glVfFxj8a4?t=1705)\n* [10 - Explorador web](https://youtu.be/1glVfFxj8a4?t=1768)\n* [11 - Playground](https://youtu.be/1glVfFxj8a4?t=1893)\n* [12 - Instalación](https://youtu.be/1glVfFxj8a4?t=1988)\n* [13 - Editor de código](https://youtu.be/1glVfFxj8a4?t=2256)\n* [14 - Buenas prácticas](https://youtu.be/1glVfFxj8a4?t=2311)\n* [15 - Hola mundo](https://youtu.be/1glVfFxj8a4?t=2390) | [Código](./Basic/00-helloworld.js)\n* [16 - Variables](https://youtu.be/1glVfFxj8a4?t=3049) | [Código](./Basic/01-variables.js)\n* [17 - Tipos de datos](https://youtu.be/1glVfFxj8a4?t=3599) | [Código](./Basic/02-datatypes.js)\n* [18 - Ejercicios: primeros pasos](https://youtu.be/1glVfFxj8a4?t=4733) | [Ejercicios](./Basic/03-beginner-exercises.js)\n* [19 - Operadores](https://youtu.be/1glVfFxj8a4?t=4937) | [Código](./Basic/04-operators.js)\n* [20 - Ejercicios: Operadores](https://youtu.be/1glVfFxj8a4?t=6458) | [Ejercicios](./Basic/05-operators-exercises.js)\n* [21 - Strings](https://youtu.be/1glVfFxj8a4?t=6565) | [Código](./Basic/06-strings.js)\n* [22 - Ejercicios: Strings](https://youtu.be/1glVfFxj8a4?t=7226) | [Ejercicios](./Basic/07-strings-exercises.js)\n* [23 - Condicionales](https://youtu.be/1glVfFxj8a4?t=7277) | [Código](./Basic/08-conditionals.js)\n* [24 - Ejercicios: Condicionales](https://youtu.be/1glVfFxj8a4?t=8652) | [Ejercicios](./Basic/09-conditionals-exercises.js)\n* [25 - Arrays](https://youtu.be/1glVfFxj8a4?t=8741) | [Código](./Basic/10-array.js)\n* [26 - Sets](https://youtu.be/1glVfFxj8a4?t=9952) | [Código](./Basic/11-set.js)\n* [27 - Maps](https://youtu.be/1glVfFxj8a4?t=10755) | [Código](./Basic/12-map.js)\n* [28 - Ejercicios: Estructuras](https://youtu.be/1glVfFxj8a4?t=11451) | [Ejercicios](./Basic/13-structures-exercises.js)\n* [29 - Bucles](https://youtu.be/1glVfFxj8a4?t=11575) | [Código](./Basic/14-loops.js)\n* [30 - Ejercicios: Bucles](https://youtu.be/1glVfFxj8a4?t=12732) | [Ejercicios](./Basic/15-loops-exercises.js)\n* [31 - Funciones](https://youtu.be/1glVfFxj8a4?t=12829) | [Código](./Basic/16-functions.js)\n* [32 - Ejercicios: Funciones](https://youtu.be/1glVfFxj8a4?t=14146) | [Ejercicios](./Basic/17-functions-exercises.js)\n* [33 - Objetos](https://youtu.be/1glVfFxj8a4?t=14229) | [Código](./Basic/18-objects.js)\n* [34 - Ejercicios: Objetos](https://youtu.be/1glVfFxj8a4?t=15675) | [Ejercicios](./Basic/19-objects-exercises.js)\n* [35 - Desestructuración y propagación](https://youtu.be/1glVfFxj8a4?t=15747) | [Código](./Basic/20-destructuring-spreading.js)\n* [36 - Ejercicios: Desestructuración y propagación](https://youtu.be/1glVfFxj8a4?t=16802) | [Ejercicios](./Basic/21-destructuring-spreading-exercises.js)\n* [37 - Clases](https://youtu.be/1glVfFxj8a4?t=16864) | [Código](./Basic/22-classes.js)\n* [38 - Herencia de clases](https://youtu.be/1glVfFxj8a4?t=17999) | [Código](./Basic/22-classes.js)\n* [39 - Ejercicios: Clases](https://youtu.be/1glVfFxj8a4?t=18630) | [Ejercicios](./Basic/23-classes-exercises.js)\n* [40 - Manejo de errores](https://youtu.be/1glVfFxj8a4?t=18751) | [Código](./Basic/24-error-handling.js)\n* [41 - Ejercicios: Manejo de errores](https://youtu.be/1glVfFxj8a4?t=20392) | [Ejercicios](./Basic/25-error-handling-exercises.js)\n* [42 - Console](https://youtu.be/1glVfFxj8a4?t=20444) | [Código](./Basic/26-console-methods.js)\n* [43 - Ejercicios: Console](https://youtu.be/1glVfFxj8a4?t=21421) | [Ejercicios](./Basic/27-console-methods-exercises.js)\n* [44 - Módulos](https://youtu.be/1glVfFxj8a4?t=21480) | [Código exportación](./Basic/28-export-modules.js) | [Código importación](./Basic/29-import-modules.js) | [Código externos](./Basic/30-import-external-modules.cjs)\n* [45 - Ejercicios: Módulos](https://youtu.be/1glVfFxj8a4?t=22720) | [Ejercicios](./Basic/31-modules-exercises.js) | [package.json](./Basic/package.json)\n* [Despedida](https://youtu.be/1glVfFxj8a4?t=22776)\n\n## Enlaces de interés\n\n* Impacto: [Stack Overflow](https://survey.stackoverflow.co/2023/#most-popular-technologies-language) | [GitHub](https://github.blog/2023-11-08-the-state-of-open-source-and-ai/) | [Índice TIOBE](https://www.tiobe.com/tiobe-index/) | [Google Trends](https://trends.google.es/trends/explore?cat=5\u0026date=today%205-y\u0026q=%2Fm%2F02p97,%2Fm%2F05z1_,%2Fm%2F07sbkfb\u0026hl=es)\n* [Historia](https://es.wikipedia.org/wiki/JavaScript)\n* [Especificación ECMAScript](https://tc39.es/ecma262/)\n* [Documentación Mozilla](https://developer.mozilla.org/es/docs/Web/JavaScript)\n* [Documentación W3Schools](https://www.w3schools.com/js/)\n* [Documentación JS Info](https://es.javascript.info/)\n* [Libro Eloquent JavaScript](https://eloquentjavascript.net/)\n* [Playground](https://runjs.app/play)\n* [Node.js](https://nodejs.org)\n* Exploradores: [Chrome](https://www.google.com/intl/es_es/chrome/) | [Brave](https://brave.com/download/)\n* [Visual Studio Code](https://code.visualstudio.com/)\n* [Guía de estilo](https://google.github.io/styleguide/jsguide.html)\n* Clientes HTTP: [Postman](https://postman.com) | [Apidog](https://apidog.com) | [Thunder Client](https://thunderclient.com)\n* APIs: [JSONPlaceholder](https://jsonplaceholder.typicode.com) | [OpenWeather](https://openweathermap.org) | [PokéAPI](https://pokeapi.co)\n* Expresiones regulares: [Documentación](https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet\n) | [Regex101](https://regex101.com/)\n\n## Únete al campus de programación de la comunidad\n\n![https://mouredev.pro](./Images/pro.jpg)\n\n#### Te presento [mouredev pro](https://mouredev.pro), mi proyecto más importante para ayudarte a estudiar programación y desarrollo de software de manera diferente.\n\n\u003e **¿Buscas un extra?** Aquí encontrarás este y otros cursos editados por lecciones individuales, para avanzar a tu ritmo y guardar el progreso. También dispondrás de ejercicios y correcciones, test para validar tus conocimientos, examen y certificado público de finalización, soporte, foro de estudiantes, reunionnes grupales, cursos exclusivos y mucho más.\n\u003e \n\u003e Entra en **[mouredev.pro](https://mouredev.pro)** y utiliza el cupón **\"JAVASCRIPT\"** con un 10% de descuento en tu primera suscripción.\n\n## Preguntas frecuentes\n\n#### ¿Debo tener conocimientos previos?\nMi idea es que el curso sea desde cero y para principiantes. Pensado para una persona que comienza por primera vez a programar. Es un curso de fundamentos, donde nos centraremos en aprender las bases del lenguaje con JavaScript puro (Vanilla JS). Esto no es un curso para aprender a desarrollar proyectos. Vamos a empezar desde el principio.\n\nSi la acogida de la comunidad es buena, seguiré creando cursos más avanzados.\n\n#### ¿Este curso se va a subir a YouTube?\n\nSí, una vez finalizados, todos los cursos son editados y subidos en bloque a YouTube.\n\n#### ¿Existe algún lugar donde consultar dudas?\nHe creado un canal llamado \"JavaScript\" en el [servidor de Discord](https://discord.gg/mouredev) de la comunidad. Allí puedes consultar dudas y ayudar al resto de miembros. Así nos beneficiamos tod@s.\n\n#### ¿Cómo puedo practicar?\nEn cada lección encontrarás ejercicios para poner en práctica lo aprendido. También puedes realizar los ejercicios de mi web [retosdeprogramacion.com](https://retosdeprogramacion.com).\n\n## ![https://mouredev.com](https://raw.githubusercontent.com/mouredev/mouredev/master/mouredev_emote.png) Hola, mi nombre es Brais Moure.\n### Freelance full-stack iOS \u0026 Android engineer\n\n[![YouTube Channel Subscribers](https://img.shields.io/youtube/channel/subscribers/UCxPD7bsocoAMq8Dj18kmGyQ?style=social)](https://youtube.com/mouredevapps?sub_confirmation=1)\n[![Twitch Status](https://img.shields.io/twitch/status/mouredev?style=social)](https://twitch.com/mouredev)\n[![Discord](https://img.shields.io/discord/729672926432985098?style=social\u0026label=Discord\u0026logo=discord)](https://mouredev.com/discord)\n[![Twitter Follow](https://img.shields.io/twitter/follow/mouredev?style=social)](https://twitter.com/mouredev)\n![GitHub Followers](https://img.shields.io/github/followers/mouredev?style=social)\n![GitHub Followers](https://img.shields.io/github/stars/mouredev?style=social)\n\nSoy ingeniero de software desde 2010. Desde 2018 combino mi trabajo desarrollando Apps con la creación de contenido formativo sobre programación y tecnología en diferentes redes sociales como **[@mouredev](https://moure.dev)**.\n\nSi quieres unirte a nuestra comunidad de desarrollo, aprender programación, mejorar tus habilidades y ayudar a la continuidad del proyecto, puedes encontrarnos en:\n\n[![Twitch](https://img.shields.io/badge/Twitch-Programación_en_directo-9146FF?style=for-the-badge\u0026logo=twitch\u0026logoColor=white\u0026labelColor=101010)](https://twitch.tv/mouredev)\n[![Discord](https://img.shields.io/badge/Discord-Servidor_de_la_comunidad-5865F2?style=for-the-badge\u0026logo=discord\u0026logoColor=white\u0026labelColor=101010)](https://mouredev.com/discord) [![Pro](https://img.shields.io/badge/Cursos-mouredev.pro-FF5500?style=for-the-badge\u0026logo=gnometerminal\u0026logoColor=white\u0026labelColor=101010)](https://mouredev.pro)\n[![Link](https://img.shields.io/badge/Links_de_interés-moure.dev-14a1f0?style=for-the-badge\u0026logo=Linktree\u0026logoColor=white\u0026labelColor=101010)](https://moure.dev) [![Web](https://img.shields.io/badge/GitHub-MoureDev-087ec4?style=for-the-badge\u0026logo=github\u0026logoColor=white\u0026labelColor=101010)](https://github.com/mouredev)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmouredev%2Fhello-javascript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmouredev%2Fhello-javascript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmouredev%2Fhello-javascript/lists"}