Desenvolvimento de Sistemas Com JavaScript
Desenvolvimento de Sistemas Com JavaScript
JavaScript
JavaScript é uma das linguagens mais populares e versáteis da atualidade. Ele é
utilizado para construir desde sites interativos até aplicativos complexos e sistemas
backend. Vamos explorar conceitos fundamentais e, em seguida, montar um plano de
30 dias para que você se torne um especialista em desenvolvimento com JavaScript.
Conceitos Importantes
Exemplo:
Exemplo:
document.getElementById("botao").addEventListener("click", function() {
alert("Botão clicado!");
});
3. Eventos e Manipulação
Trabalhe com cliques, teclado, mouse, e outros eventos.
Exemplo:
fetch('https://api.example.com/data')
Exemplo:
console.log(a, b); // 1 2
6. Desenvolvimento Backend com Node.js
Use JavaScript para construir servidores e APIs.
8. Testes Automatizados
Garanta que seu código funcione conforme esperado usando testes.
Estrutura
Exemplo:
tasks.push("Fazer exercícios");
console.log(tasks);
console.log(nomeCompleto("João", "Silva"));
Exemplo:
console.log(somar(3, 4)); // 7
Exemplo:
class Carro {
constructor(marca, modelo) {
this.marca = marca;
this.modelo = modelo;
detalhes() {
console.log(carro.detalhes());
Esse é o plano inicial para a primeira semana. Caso queira, posso detalhar as semanas
seguintes, indo desde a manipulação do DOM até a construção do projeto final. O que
acha?
4o
Você disse:
Seguindo sua indicação gere material de estudos com explicação, exemplos e desafios
práticos para a primeira semana de estudos, relativo aos fundamentos de JavaScript.
O ChatGPT disse:
ChatGPT
Explicação
Conceitos-Chave:
let resultado = 10 + 5; // 15
Exemplo
let a = 10;
let b = 5;
Desafio do Dia
Explicação
console.log(frutas[0]); // Maçã
console.log(pessoa.nome); // João
Exemplo
livros.push("Node.js Essentials");
Desafio do Dia
2. Crie um objeto para armazenar informações sobre você (nome, idade, hobby
favorito) e exiba os valores.
Dia 3: Funções
Explicação
1. Declaração de Funções
function saudacao(nome) {
}
console.log(saudacao("Maria")); // Olá, Maria!
2. Parâmetros e Retornos
function soma(a, b) {
return a + b;
console.log(soma(3, 7)); // 10
Desafio do Dia
1. Crie uma função que receba dois números como parâmetros e retorne a soma.
2. Faça uma função que exiba "Bom dia, [nome]" onde o nome é passado como
argumento.
Explicação
console.log("Maior de idade");
} else {
console.log("Menor de idade");
console.log(i); // 0, 1, 2, 3, 4
Desafio do Dia
Explicação
console.log(somar(2, 3)); // 5
console.log(`Bem-vindo, ${nome}!`);
console.log(x, y); // 10 20
Desafio do Dia
Explicação
Métodos de Strings
Manipulação de Datas
Desafio do Dia
Objetivo
Exemplo
switch (operacao) {
case "+":
return a + b;
case "-":
return a - b;
case "*":
return a * b;
case "/":
return a / b;
default:
console.log(calculadora(5, 3, "+")); // 8
Desafio do Dia
Explicação
O DOM é uma representação estruturada da página web. Com ele, você pode acessar
elementos HTML e manipulá-los.
1. Selecionando Elementos
Exemplo:
2. Alterando Conteúdo
Exemplo
html
<h1 id="titulo">Bem-vindo!</h1>
<script>
</script>
Desafio do Dia
1. Crie um HTML com um título e um parágrafo. Use JavaScript para alterar o texto
de ambos.
Explicação
1. Adicionando Eventos
o Use addEventListener para vincular uma função a um evento.
botao.addEventListener("click", function () {
alert("Botão clicado!");
});
Exemplo
html
<script>
document.getElementById("meuBotao").addEventListener("click", () => {
alert("Você clicou!");
});
</script>
Desafio do Dia
1. Adicione um botão à página que exibe uma mensagem de alerta ao ser clicado.
2. Crie um evento que altera o texto de um parágrafo ao passar o mouse sobre ele.
Explicação
titulo.style.color = "blue";
titulo.style.fontSize = "24px";
titulo.classList.add("ativo");
titulo.classList.remove("inativo");
Exemplo
html
<script>
document.getElementById("botao").addEventListener("click", () => {
titulo.style.color = "red";
});
</script>
Desafio do Dia
Explicação
1. Criar Elementos
document.body.appendChild(novoParagrafo);
2. Remover Elementos
titulo.remove();
Exemplo
html
<button id="adicionar">Adicionar Parágrafo</button>
<script>
document.getElementById("adicionar").addEventListener("click", () => {
document.body.appendChild(paragrafo);
});
</script>
Desafio do Dia
Explicação
1. Propriedades Principais
Exemplo:
console.log(item.textContent);
Desafio do Dia
2. Alterne o estilo de cada item da lista para cores diferentes (exemplo: alternar
entre azul e vermelho).
Dia 13: Validação Simples de Formulários
Explicação
1. Obtendo Valores
2. Verificando Dados
Exemplo
html
<form id="meuForm">
<button type="submit">Enviar</button>
</form>
<script>
document.getElementById("meuForm").addEventListener("submit", (event)
=> {
event.preventDefault();
alert("Preencha o nome!");
} else {
alert(`Olá, ${nome}!`);
});
</script>
Desafio do Dia
1. Crie um formulário com um campo de texto e botão de envio. Exiba um alerta se
o campo estiver vazio.
Objetivo
Exemplo
html
<ul id="tarefas"></ul>
<button id="adicionarTarefa">Adicionar</button>
<script>
document.getElementById("adicionarTarefa").addEventListener("click", () => {
item.textContent = novaTarefa;
lista.appendChild(item);
});
</script>
<style>
.concluida {
text-decoration: line-through;
color: gray;
}
</style>
Desafio do Dia
Explicação
console.log(`Olá, ${nome}`);
callback();
saudacao("João", () => {
console.log("Bem-vindo!");
});
});
promessa
Desafio do Dia
1. Crie uma função que receba um callback para exibir uma mensagem após uma
saudação.
Explicação
console.log(json);
carregarDados();
try {
console.log(json);
} catch (erro) {
Desafio do Dia
1. Crie uma função assíncrona que simule uma API de consulta de dados.
2. Use fetch para obter dados de uma API pública e exibi-los no console.
Explicação
O Node.js permite executar JavaScript fora do navegador. É amplamente utilizado
para backend.
o Verifique a instalação:
bash
Copiar código
node -v
javascript
Copiar código
console.log("Olá, Node.js!");
const fs = require("fs");
console.log("Arquivo criado.");
Desafio do Dia
Explicação
1. Módulo http
});
servidor.listen(3000, () => {
});
Desafio do Dia
Explicação
1. Iniciando um Projeto
bash
npm init -y
2. Instalando Pacotes
bash
3. Utilizando Pacotes
res.send("Olá, Express!");
});
app.listen(3000, () => {
});
Desafio do Dia
Explicação
app.use(express.json());
});
2. Rotas de CRUD
Desafio do Dia
1. Crie uma API com uma rota /api que retorne uma mensagem JSON.
Objetivo
Exemplo
app.use(express.json());
tarefas.push(novaTarefa);
res.status(201).json(novaTarefa);
});
res.status(204).end();
});
Desafio do Dia
Implemente a API acima e teste todas as rotas com ferramentas como Postman ou
Insomnia.
Explicação
1. Conceitos Básicos
function Saudacao() {
2. Instalando React
bash
cd meu-projeto
npm start
3. Estrutura Básica
Desafio do Dia
Explicação
Propriedades (props) são parâmetros passados para componentes para torná-los
dinâmicos.
function Saudacao(props) {
2. Passando Props
3. Componentes Aninhados
function App() {
return (
<div>
</div>
);
Desafio do Dia
1. Crie um componente Usuario que receba nome e idade como props e exiba-os.
Explicação
Estado (state) é uma forma de armazenar dados que podem mudar ao longo do
tempo em um componente.
1. Usando useState
function Contador() {
return (
<div>
<p>Contador: {contador}</p>
</div>
);
2. Eventos
Desafio do Dia
Explicação
No React, você pode usar fetch ou bibliotecas como Axios para consumir APIs e exibir
dados.
function App() {
fetch("https://jsonplaceholder.typicode.com/posts")
}, []);
return (
<ul>
{posts.map((post) => (
<li key={post.id}>{post.title}</li>
))}
</ul>
);
Desafio do Dia
Explicação
O projeto final será uma aplicação To-Do List com frontend React e backend Node.js.
Ela terá as seguintes funcionalidades:
1. Adicionar tarefas.
2. Listar tarefas.
3. Remover tarefas.
Estrutura:
Desafio do Dia
2. Inicie o backend com uma API de tarefas (como visto na semana 3).
Dia 27: Criando o Frontend do Projeto
Explicação
1. Estrutura do Componente
function App() {
setTarefas([...tarefas, novaTarefa]);
setNovaTarefa("");
};
return (
<div>
<input
type="text"
value={novaTarefa}
/>
<button onClick={adicionarTarefa}>Adicionar</button>
<ul>
<li key={index}>{tarefa}</li>
))}
</ul>
</div>
);
}
export default App;
Desafio do Dia
Explicação
1. Consumindo a API
useEffect(() => {
fetch("http://localhost:3000/tarefas")
}, []);
Desafio do Dia
Explicação
1. Validações
2. Melhorias Visuais
Desafio do Dia
Explicação
1. Estrutura Final
2. Publicação
Desafio do Dia
2. Compartilhe seu trabalho com amigos ou em redes sociais para obter feedback.
Material de Estudos: Utilização de APIs, Funções e Objetos em JavaScript
Conceitos Fundamentais
fetch("https://jsonplaceholder.typicode.com/posts")
2. Métodos HTTP:
3. Requisições Assíncronas:
try {
console.log(data);
} catch (error) {
console.error("Erro:", error);
carregarPosts();
Exemplo Prático: Consumindo uma API Pública
Crie uma página HTML que exiba uma lista de posts obtidos de uma API.
html
Copiar código
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Posts da API</title>
</head>
<body>
<h1>Posts da API</h1>
<ul id="posts"></ul>
<script>
lista.appendChild(item);
});
carregarPosts();
</script>
</body>
</html>
Desafio Prático
1. Altere o exemplo acima para exibir apenas os 5 primeiros posts.
Conceitos Fundamentais
1. Declaração de Função:
function saudacao(nome) {
console.log(saudacao("João"));
console.log(soma(2, 3));
javascript
Copiar código
console.log(calcular(4, 5, multiplicar)); // 20
javascript
Copiar código
console.log(`Bem-vindo, ${nome}!`);
javascript
Copiar código
switch (operacao) {
case "soma":
return a + b;
case "subtracao":
return a - b;
case "multiplicacao":
return a * b;
case "divisao":
return a / b;
default:
console.log(calcular(10, 5, "soma")); // 15
console.log(calcular(10, 5, "divisao")); // 2
Desafio Prático
Conceitos Fundamentais
1. Criação de Objetos:
javascript
Copiar código
const pessoa = {
nome: "Ana",
idade: 25,
falar: function() {
};
console.log(pessoa.falar());
2. Acessando Propriedades:
3. Métodos e this:
javascript
Copiar código
console.log(`${chave}: ${carro[chave]}`);
5. Desestruturação de Objetos:
javascript
Copiar código
console.log(nome, idade);
javascript
Copiar código
const tarefas = [
];
tarefas.forEach(tarefa => {
});
Desafio Prático
Exemplo Prático
Crie uma página que exiba informações de usuários e permita marcar usuários como
"favoritos".
javascript
Copiar código
usuarios.forEach(usuario => {
console.log(`${usuario.id}: ${usuario.name}`);
});
if (usuario) {
usuariosFavoritos.push(usuario);
carregarUsuarios();
Desafio Prático