{"id":16786051,"url":"https://github.com/anabrtorres/javascript-rocketseat","last_synced_at":"2026-04-18T01:34:41.288Z","repository":{"id":56526198,"uuid":"298420430","full_name":"anabrtorres/javascript-rocketseat","owner":"anabrtorres","description":"Exercises from JavaScript Starter course | Rocketseat  🖥️🚀","archived":false,"fork":false,"pushed_at":"2020-11-02T14:02:20.000Z","size":54,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-29T11:56:09.535Z","etag":null,"topics":["html","javascript","javascript-rocketseat","rocketseat"],"latest_commit_sha":null,"homepage":"https://app.rocketseat.com.br/starter","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anabrtorres.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-09-24T23:44:12.000Z","updated_at":"2021-04-29T16:36:50.000Z","dependencies_parsed_at":"2022-08-15T20:20:42.905Z","dependency_job_id":null,"html_url":"https://github.com/anabrtorres/javascript-rocketseat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anabrtorres/javascript-rocketseat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anabrtorres%2Fjavascript-rocketseat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anabrtorres%2Fjavascript-rocketseat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anabrtorres%2Fjavascript-rocketseat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anabrtorres%2Fjavascript-rocketseat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anabrtorres","download_url":"https://codeload.github.com/anabrtorres/javascript-rocketseat/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anabrtorres%2Fjavascript-rocketseat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31953515,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"ssl_error","status_checked_at":"2026-04-18T00:39:20.671Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["html","javascript","javascript-rocketseat","rocketseat"],"created_at":"2024-10-13T08:11:04.810Z","updated_at":"2026-04-18T01:34:41.272Z","avatar_url":"https://github.com/anabrtorres.png","language":"JavaScript","readme":"# JavaScript | Rocketseat\n\u003cp\u003eExercises from Module 1 to 4 of the Rocketseat \u003ca href=\"https://skylab.rocketseat.com.br/journey/starter\" rel=\"nofollow\"\u003eJavaScript Starter\u003c/a\u003e 🖥️🚀\u003c/p\u003e\n\n\u003col\u003e\n\u003ca href=\"#mod1\"\u003e\u003cli\u003eIntrodução JavaScript\u003c/li\u003e\u003c/a\u003e\n\u003ca href=\"#mod2\"\u003e\u003cli\u003eManipulando a DOM\u003c/li\u003e\u003c/a\u003e\n\u003ca href=\"#mod3\"\u003e\u003cli\u003eApp de To-Dos\u003c/li\u003e\u003c/a\u003e\n\u003ca href=\"#mod4\"\u003e\u003cli\u003eJS Assíncrono\u003c/li\u003e\u003c/a\u003e\n\u003c/ol\u003e\n\n\u003cdiv id=\"mod1\"\u003e\u003ch2\u003eMódulo 01 - Introdução JavaScript \u003c/h2\u003e\u003c/div\u003e\n\u003ch3\u003eExercício #1\u003c/h3\u003e\n\u003cp\u003eCrie uma função que dado o objeto a seguir:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003evar endereco = {\n\trua: \"Rua dos pinheiros\",\n\tnumero: 1293,\n\tbairro: \"Centro\",\n\tcidade: \"São Paulo\",\n\tuf: \"SP\"\n};\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eRetorne o seguinte conteúdo:\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eO usuário mora em São Paulo / SP, no bairro Centro, na rua \"Rua dos Pinheiros\" com nº 1293.\u003c/code\u003e\u003c/p\u003e\n\n\u003ch3\u003eExercício #2\u003c/h3\u003e\n\u003cp\u003eCrie uma função que dado um intervalo (entre x e y) exiba todos número pares:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003efunction pares(x, y) {\n  // código aqui\n}\npares(32, 321);\n\u003c/code\u003e\u003c/pre\u003e\n\n\u003ch3\u003eExercício #3\u003c/h3\u003e\n\u003cp\u003eEscreva uma função que verifique se o vetor de habilidades passado possui a habilidade \"Javascript\"\ne retorna um booleano true/false caso exista ou não.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003efunction temHabilidade(skills) {\n  // código aqui\n}\nvar skills = [\"Javascript\", \"ReactJS\", \"React Native\"];\ntemHabilidade(skills); // true ou false\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eDica: para verificar se um vetor contém um valor, utilize o método indexOf.\u003c/em\u003e\u003c/p\u003e\n\n\u003ch3\u003eExercício #4\u003c/h3\u003e\n\u003cp\u003eEscreva uma função que dado um total de anos de estudo retorna o quão experiente o usuário é:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003efunction experiencia(anos) {\n  // código aqui\n}\nvar anosEstudo = 7;\nexperiencia(anosEstudo);\n// De 0-1 ano: Iniciante\n// De 1-3 anos: Intermediário\n// De 3-6 anos: Avançado\n// De 7 acima: Jedi Master\n\u003c/code\u003e\u003c/pre\u003e\n\n\u003ch3\u003eExercício #5\u003c/h3\u003e\n\u003cp\u003eDado o seguinte vetor de objetos:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003evar usuarios = [\n{\nnome: \"Diego\",\nhabilidades: [\"Javascript\", \"ReactJS\", \"Redux\"]\n},\n{\nnome: \"Gabriel\",\nhabilidades: [\"VueJS\", \"Ruby on Rails\", \"Elixir\"]\n}\n];\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eEscreva uma função que produza o seguinte resultado:\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eO Diego possui as habilidades: Javascript, ReactJS, Redux O Gabriel possui as habilidades: VueJS, Ruby on Rails, Elixir\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDica: Para percorrer um vetor você deve utilizar a sintaxe for...of e para unir valores de um array\ncom um separador utilize o join.\u003c/em\u003e\u003c/p\u003e\n\n\n\u003cdiv id=\"mod2\"\u003e\u003ch2\u003eMódulo 02 - Manipulando a DOM\u003c/h2\u003e\u003c/div\u003e\n\u003ch3\u003eExercício #1\u003c/h3\u003e\n\u003cp\u003eCrie um botão que ao ser clicado cria um novo elemento em tela com a forma de um quadrado\nvermelho com 100px de altura e largura. Sempre que o botão for clicado um novo quadrado deve\naparecer na tela.\u003c/p\u003e\n\n\u003ch3\u003eExercício #2\u003c/h3\u003e\n\u003cp\u003eUtilizando o resultado do primeiro desafio, toda vez que o usuário passar o mouse por cima de\nalgum quadrado troque sua cor para uma cor aleatória gerada pela função abaixo:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003efunction getRandomColor() {\n var letters = \"0123456789ABCDEF\";\n var color = \"#\";\n for (var i = 0; i \u003c 6; i++) {\n color += letters[Math.floor(Math.random() * 16)];\n }\n return color;\n}\nvar newColor = getRandomColor(); // #E943F0\n\u003c/code\u003e\u003c/pre\u003e\n\n\u003ch3\u003eExercício #3\u003c/h3\u003e\n\u003cp\u003eA partir do seguinte vetor:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e var nomes = [\"Diego\", \"Gabriel\", \"Lucas\"]; \u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePreencha uma lista ul no HTML com os itens da seguinte forma:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDiego\u003c/li\u003e\n\u003cli\u003eGabriel\u003c/li\u003e\n\u003cli\u003eLucas\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3\u003eExercício #4\u003c/h3\u003e\n\u003cp\u003eSeguindo o resultado do exercício anterior adicione um input em tela e um botão como a seguir:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003c input type=\"text\" name=\"nome\" /\u003e\n\u003c button onClick=\"add()\" \u003e Adicionar \u003c /button \u003e\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAo clicar no botão, a função adicionar() deve ser disparada adicionando um novo item a lista de\nnomes baseado no nome preenchido no input e renderizando o novo item em tela juntos aos\ndemais itens anteriores. Além disso, o conteúdo do input deve ser apagado após o clique.\u003c/p\u003e\n\n\n\u003cdiv id=\"mod3\"\u003e\u003ch2\u003eMódulo 03 - App de To-Dos \u003c/h2\u003e\u003cdiv\u003e\n\u003ch3\u003eExercício #1\u003c/h3\u003e\n\u003cp\u003eFaça uma lista de to-do com os seguintes elementos:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003evar todos = [\n    'Fazer café',\n    'Estudar Javascrpt',\n    'Acesar curriculo'\n];\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eExercício #2\u003c/h3\u003e\n\u003cp\u003eFaça a renderização dos to-dos utilizando uma função.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003efunction renderTodos() {\n    // Renderize os to-dos\n}renderTodos();\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eExercício #3\u003c/h3\u003e\n\u003cp\u003eAdicione um input e um button para adicionar novos to-dos à lista quando o botão é clicado.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003efunction addTodo() {\n    // Adicione um to-do\n}buttonElement.onclick = addTodo;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eExercício #4\u003c/h3\u003e\n\u003cp\u003eInclua a função de deletar to-dos quando selecionado.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003efunction deleteTodo(pos) {\n    // Delete um to-do\n}\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eExercício #5\u003c/h3\u003e\n\u003cp\u003eSalve os dados no armazenamento local usando o Storage.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003efunction saveToStorage() {    \n    // Salve no Storage\n}\n\u003c/code\u003e\u003c/pre\u003e\n\n\n\u003cdiv id=\"mod4\"\u003e\u003ch2\u003eMódulo 04 - JS Assíncrono\u003c/h2\u003e\u003c/div\u003e\n\u003ch3\u003eExercício #1\u003c/h3\u003e\n\u003cp\u003eCrie uma função que recebe a idade de um usuário e retorna uma Promise que depois de 2\nsegundos retornará se usuário é maior ou não que 18 anos. Se o usuário ter mais que 18 anos de\nidade o resultado deve cair no .then, caso contrário, no .catch\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003efunction checaIdade(idade) {\n // Retornar uma promise\n}\nchecaIdade(20)\n .then(function() {\n console.log(\"Maior que 18\");\n })\n .catch(function() {\n console.log(\"Menor que 18\");\n });\n\u003c/code\u003e\u003c/pre\u003e\n\n\u003ch3\u003eExercício #2\u003c/h3\u003e\n\u003cp\u003eCrie uma tela com um \u003c input \u003e que deve receber o nome de um usuário no Github. Após digitar o\nnome do usuário e clicar no botão buscar a aplicação deve buscar pela API do Github (conforme\nURL abaixo) os dados de repositórios do usuário e mostrá-los em tela:\u003c/p\u003e\n\u003cp\u003eURL de exemplo: https://api.github.com/users/diego3g/repos\u003c/p\u003e\n\u003cp\u003eBasta alterar \"diego3g\" pelo nome do usuário.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003c input type=\"text\" name=\"user\" /\u003e\n\u003c button onclick = \"\" \u003eAdicionar\u003c /button \u003e\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eDepois de preencher o input e adicionar, a seguinte lista deve aparecer abaixo:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003c ul \u003e\n \u003c li \u003erepo1\u003c /li \u003e\n \u003c li \u003erepo2\u003c /li \u003e\n \u003c li \u003erepo3\u003c /li \u003e\n \u003c li \u003erepo4\u003c /li \u003e\n \u003c li \u003erepo5\u003c /li \u003e\n\u003c /ul \u003e\u003c/code\u003e\u003c/pre\u003e\n\n\u003ch3\u003eExercício #3\u003c/h3\u003e\n\u003cp\u003eA partir do resultado do exemplo anterior adicione um indicador de carregamento em tela no lugar\nda lista apenas enquanto a requisição estiver acontecendo:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003c li \u003eCarregando...\u003c /li \u003e\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAlém disso, adicione uma mensagem de erro em tela caso o usuário no Github não exista.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDica: Quando o usuário não existe, a requisição irá cair no .catch com código de erro 404.\u003c/em\u003e\u003c/p\u003e\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanabrtorres%2Fjavascript-rocketseat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanabrtorres%2Fjavascript-rocketseat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanabrtorres%2Fjavascript-rocketseat/lists"}