Começando Com JavaScript - 30 Atividades para Iniciar o Aprendizado de JavaScript (#30DiasDeCodigo Livro 1)
Começando Com JavaScript - 30 Atividades para Iniciar o Aprendizado de JavaScript (#30DiasDeCodigo Livro 1)
Sobre o autor
Guto Xavier possui mais de 10 anos de experiência no ensino de tecnologias
para diferentes públicos, além da experiência com desenvolvimento de
sistemas. Atualmente exerce a atividade de consultor em projetos para
internet e docente em cursos de programação de sistemas e jogos. Em sua
carreira, teve passagens por empresas de diferentes portes e segmentos, desde
multinacionais do ramo automobilístico até startups da área imobiliária.
Sobre o autor
Introdução
Dia 1 - Missão: Pedir o nome e a idade do usuário e escrever essas informações de uma forma
amigável.
Dia 2 - Missão: Realizar contas no console.
Dia 3 - Missão: Calcular a média de venda à partir dos valores vendidos em cada um dos meses
do 1º Trim de 2018 de um vendedor
Dia 4 - Missão: Validar se um candidato pode ou não iniciar o processo de CNH
Dia 5 - Missão: Verificar se é dia, tarde ou noite e mostrar uma mensagem personalizada.
Dia 6 - Missão: Calcular as horas extras de um funcionário a partir das horas semanais
trabalhadas. Considerar a carga horária do funcionário de 44 horas por semana.
Dia 7 - Missão: Exibir dia da semana por extenso.
Dia 8 - Missão: Efetuar uma das 4 operações matemáticas básicas.
Dia 9 - Missão: Verificando confirmação para o usuário.
Dia 10 - Missão: Melhorando nossa produtividade.
Dia 11 - Missão: Exibindo uma mensagem várias vezes.
Dia 12 - Missão: Calcular a média de N alunos.
Dia 13 - Missão: Calcular a média de N números.
Dia 14 - Missão: Criar um contador.
Dia 15 - Missão: Armazenando lista de carros de um estacionamento
Dia 16 - Missão: Adicionando e removendo elementos da lista de carros
Dia 17 - Missão: Era uma vez o JavaScript
Dia 18 - Missão: Dicionário de animais
Dia 19 - Missão: Dicionário de animais
Dia 20 - Missão: Exibir os alunos de uma lista
Dia 21 - Missão: Criando uma agenda de contatos
Dia 22 - Missão: Escrevendo na tela
Dia 23 - Missão: Refinando nosso cálculo de média
Dia 24 - Missão: Tornando a cálculo da média reutilizável
Dia 25 - Missão: Abrindo site de notícias
Dia 26 - JavaScript Quiz
Dia 27 - Missão: Abrindo qualquer site
Dia 28 - Missão: Acréscimo e desconto
Dia 29 - Missão: Classificação de filmes
Dia 30 - Missão: CONCLUÍDA COM SUCESSO
Sobre as versões anteriores
2019.4.3
Correção de blablabla
Introdução
#30DaysOfCode
Objetivos:
- melhorar a lógica
- aprender uma linguagem de programação
- aplicar os conceitos de lógica de programação na prática
Esse livro não irá te ensinar a programar em 30 dias!
A ideia desse livro é do leitor se desafiar durante 30 dias, executando uma
missão por dia. Esse desafio é conhecido como 30 dias de código. Ao fim das
leituras e práticas, esperamos que o estudante esteja criando pequenos
programas e tendo compreensão dos códigos digitado.
Para esse projeto, foram criadas missões guiadas, ou seja, um guia passo-à-
passo do que deverá ser feito, sempre comentado e detalhado. Estas missões
foram escritas levando em consideração que o estudante realize ao menos
uma por dia na ordem proposta. O tempo de dedicação por missão varia de
pessoa para pessoa, mas as soluções levam em média 20 minutos.
Seria extremamente útil que o estudante registre os problemas que tiver e
como encontrou a solução, uma espécie de diário, às vezes os problemas
podem reaparecer e isso evitaria errar a mesma coisa. Outra sugestão é
registrar suas dúvidas para medir sua evolução.
Descrição:
Abra o navegador Google Chrome, com o navegador aberto, aperte a tecla
F12 (do teclado). Irá aparecer algo parecido com a imagem a seguir:
Sempre que quiser limpar o console você pode executar o comando clear.
O comando prompt produz essa caixa para que o usuário possa entrar com
informações.
No caso, foi criado uma variável chamada nome e o valor informado pelo
usuário será armazenado nesta variável.
Continue com o código
Exibindo os dados
Após ter pedido o usuário as informações nome e idade, chegou o momentos
de exibir essas informações. Digite os seguintes códigos:
console.log("Seu nome
é");
console.log(nome);
O comando console.log() exibe no console do navegador o que estiver entre
aspas ( “ ” ) ou o conteúdo da variável, no caso a variável nome. Ele está
exibindo em duas linhas, caso você queira exibir tudo em uma linha só pode
executar o seguinte comando.
console.log("Seu nome é " + nome);
E que tal melhorar a mensagem para completar o desafio:
console.log("Seja bem vindo " + nome + "!!! Você tem " + idade + "
anos.");
Operadores aritméticos
O console permite que você realize contas, execute os comandos abaixo e
veja os resultados.
Operadores relacionais
Operações utilizando os operadores relacionais retornam sempre true ou
false, execute os comandos abaixo para ver um exemplo:
Os operadores relacionais mais utilizados são:
● == → verifica a igualdade entre dois valores
● != → verifica se dois valores são diferentes
● > → verifica se um valor é maior que outro
● < → verifica se um valor é menor que outro
● >= → verifica se um valor é maior ou igual a outro
● <= → verifica se um valor é menor ou igual a outro
Digite os exemplos abaixo para ver os operadores funcionando:
Agora que você sabe que tem uma calculadora no seu navegador crie suas
contas e exemplos para praticar, crie contas mais complexas para ver o
comportamento e resultado das contas. Exemplo:
Variáveis
No Javascript a declaração de variáveis não é obrigatória, porém muito
recomendada. Digite o código abaixo para entender:
valor1;
Ao digitar valor1; será exibido um erro dizendo que não está definido.
Esse erro acontece porque não declaramos essa variável. Execute o comando
abaixo para declarar a variável valor1:
var
valor1;
Dessa vez não existiu o erro, porém foi informado a mensagem undefined
que significa que essa variável está indefinida, sem um valor. Vamos atribuir
um valor à essa variável:
valor1 =
50;
valor1;
Observe que agora, após de você digitar apenas o nome da variável foi
exibido o valor 50. O operador de atribuição é o = (igual), quando você
utiliza o igual ele pega o que tiver do lado direito e atribui ao que estiver ao
lado esquerdo do operador (Ex: valor1 = 50).
Voltando à declaração de variáveis, podemos declarar uma variável apenas a
iniciando com um valor. Digite:
valor2 =
100;
valor2;
Ou mesmo se lembrar da primeira missão onde temos a seguinte linha:
var nome = prompt("Informe seu nome" , " Digite aqui ");
Nessa linha estamos declarando a variável e já inserindo um valor dentro
dela, o que também é possível. Afim de boas práticas recomenda-se sempre
utilizar o var para definir suas variáveis, juntas ou separadas. Exemplo:
var
valor1;
var
valor2;
OU
var valor1,
valor2;
OU
Missão
Declare as variáveis que serão utilizadas:
Quando você entra com dados utilizando o comando prompt esses valores são
armazenados como string(texto), o comando parseFloat(); converte os valores
para ponto flutuante (número decimal);
Exiba as informações com uma mensagem amigável:
Estrutura de decisão
No Javascript temos algumas estruturas de decisão, nesse momento vamos
conhecer o if (se). Digite os códigos abaixo para testar:
Observação: para digitar como está no if utilize shift + enter para mudar de
linha e o comando não ser executado.
O comando if tem a seguinte estrutura:
if ( condição ) {
instruções se a condição for
verdadeiro
}else{
instruções se a condição for falsa
}
Nesse exemplo será exibida a mensagem “Mais uma vez” pois será executado
os comandos no bloco verdadeiro do if pois a variável continuar possui um
valor igual à “sim”.
Missão
Vamos primeiro pedir que o usuário digite o nome do candidato e a idade do
candidato:
Missão concluída, agora crie seus exemplos como por exemplo perguntar
para o usuário se ele é casado ou solteiro e personalizar a mensagem de
acordo com a resposta.
Dia 5 - Missão: Verificar se é dia, tarde ou noite e
mostrar uma mensagem personalizada.
Objetivo:
● Estrutura de decisão if (se)
● Objeto Date
Descrição:
Abra o console do Google Chrome, e já execute o comando para limpar o
console:
Objeto Date
Antes de tudo, precisamos declarar uma variável e descobrir a hora. Para isso
iremos criar um objeto date. Digite o código abaixo:
var dataCompleta;
dataCompleta = new
Date;
Missão
Iremos personalizar a mensagem que iremos mostrar ao usuário, para isso
iremos considerar que até antes do meio dia será “bom dia”, que até antes das
18 será “ boa tarde” e antes da 00:00 será “boa noite”.
Criar uma variável para armazenar a data completa e uma variável para
armazenar apenas à hora atual:
var
dataCompleta;
var horaAtual;
Crie seu exemplo agora, como por exemplo verificando o dia e dizendo se
está na primeira quinzena do mês, se é o dia do pagamento (dia 5), etc.
Dia 6 - Missão: Calcular as horas extras de um
funcionário a partir das horas semanais
trabalhadas. Considerar a carga horária do
funcionário de 44 horas por semana.
Objetivo:
● Estrutura de decisão if (se)
Descrição:
Abra o console do Google Chrome, e já execute o comando para limpar o
console:
Missão
Iremos calcular em quantas horas o funcionário excedeu de sua carga horária
semanal, as horas excedidas são as horas extras. Exemplo: O funcionário
Pedro tem uma carga horária semanal de 44 horas, mas ele trabalhou 50 horas
nesta semana, logo, Pedro fez 6 horas extras.
Para deixar mais completo nosso sistema, vamos verificar também se o
funcionário está “devendo” horas. Por exemplo, se Pedro tem uma carga
horária de 44 horas mas essa semana trabalhou 40, ele está com 4 horas
negativas.
Vamos criar as variáveis para armazenar a carga horária semanal do
funcionário, o saldo de horas, e, uma para armazenar as horas semanais
trabalhadas. Essa última informação deve ser informado pelo usuário. Digite:
saldoHoras = horasTrabalhadas -
cargaHorariaSemanal;
alert("O funcionário está devendo " + (saldoHoras * -1) + " hora(s) nesta
semana.");
Missão
Nossa missão é verificar qual dia é hoje(da semana) e escrever por extenso.
Exemplo: Hoje é segunda-feira.
Primeiro vamos criar variáveis para para armazenar a o objeto date, o dia da
semana em número e o dia da semana por extenso. Digite:
switch(diaDaSemana){
case 1:
diaDaSemanaExtenso = "domingo";
break;
case 2:
diaDaSemanaExtenso = "segunda-
feira";
break;
case 3:
diaDaSemanaExtenso = "terça-feira";
break;
case 4:
diaDaSemanaExtenso = "quarta-feira";
break;
case 5:
diaDaSemanaExtenso = "quinta-feira";
break;
case 6:
diaDaSemanaExtenso = "sexta-feira";
break;
default:
diaDaSemanaExtenso = "sábado";
break;
}
Crie um outro exemplo agora, como por exemplo pegando o número do mês
com getMonth(); e escrevendo em extenso. Exemplo: mês 1 = janeiro.
Dia 8 - Missão: Efetuar uma das 4 operações
matemáticas básicas.
Objetivo:
● Estrutura de decisão switch (caso)
Descrição:
Abra o console do Google Chrome, e já execute o comando para limpar o
console:
Missão
Vamos efetuar um cálculo à partir de dois valores informados pelo usuário e
de acordo com a operação escolhida pelo usuário. Vamos pedir os valores e a
operação. Digite:
switch(operacao){
case "+":
resultado = parseFloat(numero1) +
parseFloat(numero2);
break;
case "-":
resultado = parseFloat(numero1) -
parseFloat(numero2);
break;
case "*":
resultado = parseFloat(numero1) *
parseFloat(numero2);
break;
case "/":
resultado = parseFloat(numero1) /
parseFloat(numero2);
break;
default:
alert("Operação inválida");
break;
}
Confirm
O comando confirm cria uma janela parecida com o prompt, porém nesta
janela existem apenas dois botões: OK e Cancelar. Digite:
confirm("Deseja salvar o
arquivo?");
Missão
Vamos fazer uma pergunta para o usuário utilizando o comando confirm e de
acordo com o botão que ele pressionar vamos mostrar uma mensagem.
Primeiro, vamos criar a variável que vai armazenar o resultado do comando
confirm e já escrever este comando também. Digite:
var continuar = var continuar = confirm("Deseja continuar a
operação?");
if(continuar == true){
console.log("Você clicou no botão OK. Vamos continuar a
operação.");
}else{
console.log("Você clicou no botão CANCELAR. Vamos
cancelar a operação.");
}
Notepad++
Visual Studio Code
Atom
Sublime Text
Brackets
Basicamente, todos esses editores são muito parecidos entre si, a grande
mudança entre eles são exatamente os plugins e extensões disponíveis para
cada um. Plugins e extensões são as funções adicionais desenvolvidas para
esses editores, essas funções podem ser desenvolvidas por qualquer pessoa da
comunidade e não apenas funcionários das empresas.
Missão
Durante nossas missões irei utilizar o Visual Studio Code como IDE padrão
para realizar as atividades a partir desse momento.
Acesse o site do Visual Studio Code e faça download.
Digite:
<script>
Agora sua vez de praticar, escolha algumas (ou todas) das missões anteriores
e crie arquivos separados no VS Code (Missao1.html, Missao2.html,
Missao3.html, etc) e realize-as utilizando o VS Code.
Dia 11 - Missão: Exibindo uma mensagem várias
vezes.
Objetivo:
● Laço de repetição (while)
Descrição:
Abra o VS Code, aperte CTRL+S e salve o arquivo com o nome de
Missao11Exemplo.html
O laço de repetição permite que você repita uma série de instruções até a
condição para o laço se tornar falsa. Veja o exemplo a seguir, digite no VS
Code dentro da tag script:
<script>
var contador = 1;
while( contador <= 5 ){
console.log("Bom
dia");
contador = contador +
1;
}
</script>
Salve o arquivo e abra o arquivo no Google Chrome, abra o console e veja o
resultado:
<script>
var contador = 10;
while(contador >= 0){
console.log("..... " + contador + "
......");
contador = contador - 1;
}
console.log("OLHA A EXPLOSAO!");
</script>
Missão
Abra o VS Code, aperte CTRL+N para criar um arquivo novo, aperte
CTRL+S e salve o arquivo com o nome de Missao11.html
A missão consiste em repetir uma mesma frase uma certa quantidade de
vezes. Nós já fizemos isso no exemplo sobre laço de repetição, para essa
missão vamos perguntar para o usuário quantas vezes ele quer repetir a
mensagem.
Vamos criar uma variável para ser nosso contador e perguntar quantas vezes
ele deseja repetir a mensagem. Digite:
var contador = 1;
var numeroRepeticao = prompt("Informe o numero de vezes que a
mensagem deve aparecer", "Digite aqui");
<script>
</script>
Missão
Vamos fazer um programa para calcular a média de um aluno. Ao apresentar
o resultado, o programa deve perguntar se gostaria de calcular a média de
outro aluno, caso a resposta seja SIM, o programa deve executar novamente.
Declare as variáveis que irão armazenar o nome, as notas e a média do aluno.
Digite:
Agora, declare a variável que vai armazenar a resposta do usuário que será
um true ou false. Nós vamos inicializar ela com true para entrar no laço de
repetição pelo menos a primeira vez. Digite:
var resposta =
true;
Crie o laço de repetição, onde dentro do laço será pedido o nome do aluno,
cada uma das notas, a média será calculada, será exibido o nome do aluno e
sua respectiva nota e ao final será exibido uma janela com os botões OK ou
CANCELAR para saber se deve ser executado o laço novamente. Digite:
while(resposta==true){
nome = prompt("Informe o nome do aluno(a)","Digite aqui");
nota1 = prompt("Informe a nota do 1º bimestre","Digite aqui");
nota2 = prompt("Informe a nota do 2º bimestre","Digite aqui");
nota3 = prompt("Informe a nota do 3º bimestre","Digite aqui");
nota4 = prompt("Informe a nota do 4º bimestre","Digite aqui");
media = (parseFloat(nota1) + parseFloat(nota2) + parseFloat(nota3) +
parseFloat(nota4))/4;
alert("O(A) estudande " + nome + " obteve a media " + media);
resposta = confirm("Calcular a media de outro aluno?");
}
<script>
</script>
Missão
Nosso programa vai calcular a média de quantos números o usuário quiser
digitar. Relembrando o cálculo da média é a SOMA DE TODOS OS
NÚMEROS DIVIDIDO PELA QUANTIDADE DE NÚMEROS. Por
exemplo, se eu tenho 3 números, a média é a soma desses 3 números dividido
por 3.
No nosso programa depois de digitar o número será perguntado se o usuário
deseja digitar outro número, se ele disser que SIM, aparece a opção para
inserir um novo número, se disser que não será exibido a média
Primeiro, vamos declarar as variáveis que irão armazenar a quantidade de
números que o usuário digitou, a variável que vai armazenar se o usuário irá
inserir um novo número, a variável que irá armazenar a média, a variável que
vai armazenar a soma total dos números digitados e por último a variável que
vai armazenar o número atual digitado. Digite:
var quantidadeNumeros =
0;
var novoNumero = "S";
var media = 0;
var somaNumeros = 0;
var numero = 0;
while(novoNumero == "S"){
numero = prompt("Informe um numero","Digite aqui!");
somaNumeros = parseFloat(somaNumeros) + parseFloat(numero);
quantidadeNumeros = quantidadeNumeros + 1;
novoNumero = prompt("Deseja informar mais um numero?
\n[S]im\n[N]ao");
}
<script>
var quantidadeNumeros = 0;
var novoNumero = "S";
var media = 0;
var somaNumeros = 0;
var numero = 0;
while(novoNumero == "S"){
numero = prompt("Informe um numero","Digite aqui!");
somaNumeros = parseFloat(somaNumeros) + parseFloat(numero);
quantidadeNumeros = quantidadeNumeros + 1;
novoNumero = prompt("Deseja informar mais um numero?
\n[S]im\n[N]ao");
}
media = somaNumeros / quantidadeNumeros;
console.log("A media dos numeros informados é " + media);
</script>
Salve o arquivo e abra no Google Chrome para ver o resultado, não esqueça
de abrir o console.
Dia 14 - Missão: Criar um contador.
Objetivo:
● Laço de repetição (while)
● Operadores de incremento e decremento
Descrição:
Abra o VS Code, aperte CTRL+S e salve o arquivo com o nome de
Missao14.html e já digite:
<script>
</script>
Missão
Vamos criar um contador que vai de 0 à 10 aumentando de um em um, e
depois volta de 10 à 0 diminuindo de um em um.
Até agora quando queríamos aumentar de um em um em nossos exemplos
utilizamos algo como:
contador = contador +
1;
contador = contador -
1;
var contador = 0;
var contador2 =
10;
alert("Vamos
aumentar");
while(contador <= 10){
console.log(contador);
contador++;
}
alert("Vamos diminuir");
while(contador2 >= 0){
console.log(contador2);
contador2--;
}
<script>
var contador = 0;
var contador2 = 10;
alert("Vamos
aumentar");
while(contador <= 10){
console.log(contador);
contador++;
}
alert("Vamos diminuir");
while(contador2 >= 0){
console.log(contador2);
contador2--;
}
</script>
Salve o arquivo e abra no Google Chrome para ver o resultado, não esqueça
de abrir o console.
Dia 15 - Missão: Armazenando lista de carros de
um estacionamento
Objetivo:
● Utilizando Array
● Laço de repetição(while)
Descrição:
Abra o VS Code, aperte CTRL+S e salve o arquivo com o nome de
Missao15Exemplo.html e já digite:
<script>
</script>
Array
Array é um tipo de variável(não confundir com tipo de dados) utilizado para
armazenar múltiplos valores. A grande característica do array é que ele pode
ter subdivisões endereçadas(índice) e em cada uma dessas subdivisões
armazenar um valor diferente.
Por exemplo, vamos imaginar que você precise guardar o nome de 5 alunos,
normalmente, com o que aprendemos até aqui você faria da seguinte forma,
digite:
console.log(aluno1);
console.log(aluno2);
console.log(aluno3);
console.log(aluno4);
console.log(aluno5);
Salve seu arquivo e abra no Google Chrome para visualizar o resultado que
estará no console:
Dessa forma conseguimos produzir o resultado esperado, que era armazenar o
nome dos alunos e exibi-los posteriormente. Mas será que essa é a melhor
maneira? Até aqui é a maneira possível, portanto, a melhor maneira dentro do
que aprendemos.
Array na prática
Um pouco mais acima está escrito que “array é um tipo de variável utilizado
para armazenar múltiplos valores” vamos ver o funcionamento de array na
prática para resolver nosso problema.
Para criarmos um array a sintaxe é:
0 1 2 3 4
Maria Rose Claudio Renata Fernando
console.log(alunos[0]);
console.log(alunos[1]);
console.log(alunos[2]);
console.log(alunos[3]);
console.log(alunos[4]);
var contador = 0;
while(contador<=4){
console.log(alunos[contador]);
contador++;
}
Primeira versão:
Missão
Crie um arquivo novo no VS Code, aperte CTRL+S e salve o arquivo com o
nome de Missao15.html e já digite:
<script>
</script>
Agora crie o laço de repetição responsável por popular o array carros com os
modelos dos carros. Digite:
while(contador<=4){
carros[contador] = prompt("Informe o modelo do carro nº " + contador ,
"Digite aqui");
contador++;
}
Agora vamos zerar novamente a variável contador para que ela possa ser
utilizada para criar um outro loop. Digite:
contador =
0;
Por fim, vamos criar o laço de repetição responsável por exibir os carros no
console. Digite:
<script>
</script>
Missão
Vamos criar uma lista de carros e manipular os elementos delas, removendo
carros existentes e adicionando novos.
Primeiro vamos criar o array com a lista de carros. Digite:
0 1 2 3 4 5
Uno Gol Celta Civic Palio Siena
Temos então um array com 6 posições que possui índices de 0 à 5.
Uma forma que podemos fazer para visualizar o conteúdo deste array é
utilizar o comando console.dir. Digite:
console.dir(carros);
Salve o arquivo e abra no Google Chrome para ver o resultado, não esqueça
de abrir o console para ver o resultado que será algo como:
carros[3] =
"Fit";
console.dir(carros);
Salve o arquivo e abra no Google Chrome para ver o resultado, não esqueça
de abrir o console para ver o resultado que será algo como:
Observe que da primeira exibição para a segunda o valor da posição 3 foi
alterado.
O código inteiro até o momento é:
<script>
var carros = ["Uno" , "Gol" , "Celta" , "Civic" , "Palio" , "Siena"
];
console.dir(carros);
carros[3] = "Fit";
console.dir(carros);
</script>
carros.pop();
O método pop do array remove o último elemento do array. Salve e abra seu
arquivo no navegador para ver algo parecido com isso:
carros.push("Agile");
carros.push("Sandero");
<script>
var carros = ["Uno" , "Gol" , "Celta" , "Civic" , "Palio" , "Siena"
];
console.dir(carros);
carros[3] = "Fit";
carros.pop();
carros.push("Agile");
carros.push("Sandero");
console.dir(carros);
</script>
Salve e abra seu arquivo no navegador para ver algo parecido com isso:
<script>
</script>
Missão
Vamos criar um programa onde o usuário escolhe um animal e são exibidas
algumas informações sobre esse animal.
Vamos declarar as variáveis que vão controlar a exibição, armazenar a opção
do animal a ser exibido e o array que vai armazenar as informações dos
animais. Digite:
A linha var animais = new Array(4); cria um array chamado animais com 4
posições.
Vamos agora colocar informações no array animais. Digite:
while(continuar == "S"){
console.clear();
switch(animalExibir){
case "0":
console.log("Aranha");
console.log(animais[animalExibir]);
break;
case "1":
console.log("Escorpião");
console.log(animais[animalExibir]);
break;
case "2":
console.log("Cobra");
console.log(animais[animalExibir]);
break;
case "3":
console.log("Lagarto");
console.log(animais[animalExibir]);
break;
default:
console.log("Opcao invalida");
break;
}
E por fim, vamos limpar o console exibir uma mensagem para finalizar o
programa. Digite:
console.clear();
console.log("Obrigado!");
O código inteiro fica assim:
<script>
var continuar = "S";
var animalExibir;
var animais = new Array(4);
animais[0] = "Cuidado,a picada de uma radioativa pode te transformar em
super-herói";
animais[1] = "Escorpião é o oitavo signo astrológico do zodíaco";
animais[2] = "Cobra é uma denominação genérica, utilizada
frequentemente na língua portuguesa como sinônimo para serpente."
animais[3] = "Na linguagem vulgar, chama-se lagarta ao primeiro estágio
larval dos insetos da ordem dos Lepidoptera.";
while(continuar == "S"){
console.clear();
switch(animalExibir){
case "0":
console.log("Aranha");
console.log(animais[animalExibir]);
break;
case "1":
console.log("Escorpião");
console.log(animais[animalExibir]);
break;
case "2":
console.log("Cobra");
console.log(animais[animalExibir]);
break;
case "3":
console.log("Lagarto");
console.log(animais[animalExibir]);
break;
default:
console.log("Opcao invalida");
break;
}
Salve o arquivo e abra no Google Chrome para ver o resultado, não esqueça
de abrir o console.
Dia 19 - Missão: Dicionário de animais
Objetivo:
● Array
● Laço de repetição
Descrição:
Abra o VS Code, aperte CTRL+S e salve o arquivo com o nome de
Missao19.html e já digite:
<script>
</script>
Missão
Vamos criar um programa para o controle de cursos, onde o usuário deve
informar o nome do curso, o código do curso e o conteúdo programático para
o curso. No caso do conteúdo programático, o usuário pode informar quantas
vezes quiser.
Vamos declarar as variáveis que vão armazenar o nome do curso, o código do
curso, a variável de controle para informar um novo conteúdo, uma variável
para armazenar temporariamente o conteúdo, o array de conteúdos e a
variável de contador. Digite:
while(novoConteudo == "S"){
conteudoTemp = prompt("Informe o conteudo do curso" , "Digite aqui");
conteudoCurso.push(conteudoTemp);
novoConteudo = prompt("Deseja cadastrar um novo conteúdo para o
curso?[S]im / [N]ao" , "Digite aqui");
}
console.clear();
console.log("Codigo: " + codigoCurso);
console.log("Curso: " + nomeCurso);
console.log("Conteudo: ");
while(contador < conteudoCurso.length)
{
console.log(conteudoCurso[contador]);
contador++;
}
<script>
var nomeCurso = prompt("Informe o nome do curso" , "Digite aqui");
var codigoCurso = prompt("Informe o codigo do curso" , "Digite aqui");
var novoConteudo = "S";
var conteudoTemp = "";
var conteudoCurso = [];
var contador = 0;
while(novoConteudo == "S"){
conteudoTemp = prompt("Informe o conteudo do curso" , "Digite aqui");
conteudoCurso.push(conteudoTemp);
novoConteudo = prompt("Deseja cadastrar um novo conteúdo para o
curso?[S]im / [N]ao" , "Digite aqui");
}
console.clear();
console.log("Codigo: " + codigoCurso);
console.log("Curso: " + nomeCurso);
console.log("Conteudo: ");
while(contador < conteudoCurso.length){
console.log(conteudoCurso[contador]);
contador++;
}
</script>
Salve o arquivo e abra no Google Chrome para ver o resultado, não esqueça
de abrir o console.
Dia 20 - Missão: Exibir os alunos de uma lista
Objetivo:
● Laço de repetição(for)
Descrição:
Abra o VS Code, aperte CTRL+S e salve o arquivo com o nome de
Missao20Exemplo.html e já digite:
<script>
</script>
O laço for que criamos irá executar 10 vezes e em cada uma das vezes vai
exibir o conteúdo da variável contador. Vamos entender o laço for:
Missão
Crie um arquivo novo no VS Code, aperte CTRL+S e salve o arquivo com o
nome de Missao20.html e já digite:
<script>
</script>
Nossa missão será criar um array com o nome dos alunos de um curso e
exibir o nome de cada um dos alunos no console.
Fizemos algo muito parecido em um exemplo na missão 15. Veja:
Iremos fazer a mesma coisa, mas utilizando o laço for para evidenciar as
diferenças.
Digite:
var alunos = ["Maria" , "Rose" , "Claudio" , "Renata" , "Fernando"];
for(contador = 0; contador < 5 ; contador++){
console.log(alunos[contador]);
}
Primeiro temos a variável contador. A condição diz que o laço vai se repetir
enquanto contador for menor que 5, pois 5 é a quantidade de posições do
array alunos. E a cada repetição do laço será executado à instrução
contador++ que fará com que o valor de contador seja aumentado de um por
um.
Salve, abra no Google Chrome e visualize o resultado no console:
Veja o código inteiro:
Compare agora com o exemplo da missão 15 e veja como esse código ficou
mais enxuto, porém, para quem está iniciando, talvez um pouco mais
complexo:
<script>
</script>
Missão
A missão consiste em criar uma agenda de contatos que contenham os
seguintes dados: nome, telefone e cidade. Para cada parte de informação
teremos um array diferente, então nosso código terá os arrays: nomes,
telefones e cidades. Observe os exemplos:
Nomes
0 1 2
Telefones
0 1 2
99111-1111 99222-2222 99333-3333
Cidades
0 1 2
Americana Piracicaba Campinas
while(novoContato == "S"){
nomes[contador] = prompt("Informe o nome","");
telefones[contador] = prompt("Informe o telefone","");
cidades[contador] = prompt("Informe a cidade","");
novoContato = prompt("Cadastrar novo contato?[S]im /
[N]ao","");
contador++;
}
<script>
var nomes = [];
var telefones = [];
var cidades = [];
var novoContato = "S";
var contador = 0;
while(novoContato == "S"){
nomes[contador] = prompt("Informe o nome","");
telefones[contador] = prompt("Informe o telefone","");
cidades[contador] = prompt("Informe a cidade","");
novoContato = prompt("Cadastrar novo contato?[S]im /
[N]ao","");
contador++;
}
<script>
</script>
Missão
Todas as saídas de dados que trabalhamos até agora foram no console ou
utilizando alert. Agora vamos pegar informações do usuário e escrever dentro
de sua página html. Para fazer isso vamos utilizar o comando
document.write(). Digite:
Veja que o nome e a idade ficaram “colados”, vamos colocar uma informação
em cada linha. Para isso insira a linha a seguir antes da linha
document.write(idade); .Digite:
document.write("
<br>");
<script>
var nome = prompt("Informe seu nome","Digite
aqui");
document.write(nome);
var idade = prompt("Informe sua idade","Digite
aqui");
document.write("<br>");
document.write(idade);
</script>
E podemos incrementar um pouco mais nosso código:
Dia 23 - Missão: Refinando nosso cálculo de média
Objetivo:
● Laço de repetição(for)
Descrição:
Abra o VS Code, aperte CTRL+S e salve o arquivo com o nome de
Missao23.html e já digite:
<script>
</script>
Missão
Vamos pedir o nome do aluno e 4 notas para calcular a média, porém vamos
verificar se cada uma das notas digitadas é realmente um número, caso não
seja iremos pedir que o usuário informe a nota novamente. Também iremos
utilizar um comando para limitar a média à uma casa decimais(e não mais
ficar apresentando resultados tipo 7.89999999999999).
Vamos declarar as variáveis que irão armazenar a nota, a média e nosso
contador, e depois disso já vamos pedir o nome do aluno. Digite:
Nada de novo até aqui, agora criamos o laço de repetição que “prenderá” o
usuário até que ele digite 4 notas válidas(números). Digite:
media = media / 4;
document.write("A média de " + nome);
document.write(" é " +
media.toFixed(1));
Nessa parte do código a novidade é o toFixed(1), que faz com que o conteúdo
da variável media seja apresentado utilizando apenas 1 casa decimal.
Veja o código inteiro:
<script>
var media = 0, nota = 0, contador = 0;
var nome = prompt("Informe o nome do aluno","Digite
aqui!!!");
while(contador < 4){
nota = prompt("Informe a nota do aluno","Digite aqui");
if(isNaN(nota)){
alert("Voce nao digitou um numero valido");
}else{
media = parseFloat(media) + parseFloat(nota);
contador++;
}
}
media = media / 4;
document.write("A média de " + nome);
document.write(" é " + media.toFixed(1));
</script>
<script>
</script>
Nós já fizemos algumas missões onde o objetivo era criar o cálculo da média,
porém o problema que temos é de esses códigos não serem reutilizáveis, e
toda vez que queremos calcular uma média diferente precisamos recarregar a
página. Isso ainda acontece pois não trabalhamos com funções!
Funções, de um jeito bem simples, é quando você pega um conjunto de
instruções e dá um nome, de modo que toda vez que você chame por esse
nome sejam executadas aquelas instruções.
Vamos criar um exemplo: precisamos efetuar um cálculo de multiplicação
entre dois números. Digite:
function Multiplicacao(){
var resultado = 0;
var n1 = prompt("Informe o primeiro numero" , "Digite
aqui!");
var n2 = prompt("Informe o segundo numero" , "Digite
aqui!");
resultado = n1 * n2;
document.write("O resultado é " + resultado);
}
Veja que agora sim seu código foi executa, os dois números foram pedidos e
o resultado apareceu na tela:
O legal é que agora, sempre que precisar fazer o cálculo é só “chamar” a
função.
Missão
Abra o VS Code, aperte CTRL+S e salve o arquivo com o nome de
Missao24.html e já digite:
<script>
</script>
Vamos pedir as notas e calcular a média, vamos colocar essa lógica dentro de
uma função. Digite:
function Media(){
var media = 0, nota = 0, contador = 0;
var nome = prompt("Informe o nome do aluno","Digite
aqui!!!");
while(contador < 4){
nota = prompt("Informe a nota do aluno","Digite aqui");
if(isNaN(nota)){
alert("Voce nao digitou um numero valido");
}else{
media = parseFloat(media) + parseFloat(nota);
contador++;
}
}
media = media / 4;
document.write("Aluno(a).: " + nome );
document.write("<br>");
document.write("Media....: " + media );
}
Salve, abra no Google Chrome, abra o console, digite o nome da função (
Media(); ) , pressione enter, preencha as informações e visualize o resultado.
Dia 25 - Missão: Abrindo site de notícias
Objetivo:
● Criando funções personalizadas
● Utilizar funções diversas do JavaScript
Descrição:
Abra o VS Code, aperte CTRL+S e salve o arquivo com o nome de
Missao25.html e já digite:
<script>
</script>
Missão
Vamos criar uma função que abra o site do UOL e uma que abra o site
GLOBO. Digite:
<script>
function AbrirUOL(){
alert("O site UOL será aberto");
window.open("https://uol.com.br");
}
function AbrirGlobo(){
alert("O site GLOBO será
aberto");
window.open("https://globo.com");
}
</script>
Salve, abra no Google Chrome, abra o console, digite o nome da função (
AbrirUOL(); ou AbrirGlobo(); ) , pressione enter, preencha as informações e
visualize o resultado.
Dia 26 - JavaScript Quiz
Caso queira responder online, click no link https://goo.gl/forms/ydQRFdrlcde38fK13.
As respostas se encontram na última página.
<script>
</script>
Missão
A resolução do nosso problema será muito parecido com o da missão 25,
porém na missão 25 se quiséssemos abrir 10 sites diferentes teríamos que
criar 10 funções diferentes, aqui vamos ter apenas uma função, porém essa
função receberá um parâmetro. Digite:
Salve, abra no Google Chrome, abra o console, digite o nome da função junto
com os parâmetros:
AbrirSite("UOL","https://uol.com.br");
AbrirSite("TERRA","https://terra.com.br");
Quando você chama a função desse jeito
AbrirSite("TERRA","https://terra.com.br"); o valor "TERRA" será passado
para a variável nomeSite e o valor "https://terra.com.br" será passado para a
variável enderecoSite. Utilizando parâmetros nossas funções ficam muito
mais dinâmicas e úteis.
Dia 28 - Missão: Acréscimo e desconto
Objetivo:
● Criando funções personalizadas com parâmetros
Descrição:
Abra o VS Code, aperte CTRL+S e salve o arquivo com o nome de
Missao28.html e já digite:
<script>
</script>
Missão
Vamos criar uma função que receba 3 parâmetros: o valor total, uma
porcentagem e a operação. Se a operação for acréscimo a porcentagem deve
ser acrescida ao valor total, se a operação for desconto a porcentagem deve
ser descontada do valor total. Digite:
<script>
function operacao(total, porcentagem, operacao){
var valor_porcentagem = porcentagem/100 * total;
var total_pagar = 0;
if(operacao == "acrescimo"){
//acréscimo
total_pagar = total + valor_porcentagem;
}else{
//desconto
total_pagar = total - valor_porcentagem;
}
operacao(1000 , 15 ,
"acrescimo");
operacao(200 , 7 , "desconto");
Dia 29 - Missão: Classificação de filmes
Objetivo:
● Criando funções personalizadas com parâmetros
Descrição:
Abra o VS Code, aperte CTRL+S e salve o arquivo com o nome de
Missao29.html e já digite:
<script>
</script>
Missão
Vamos criar um sistema de classificação de filmes onde mostramos o filme e
o usuário da uma nota de 1 à 5. Depois exibimos o filme e sua classificação,
mostrando a classificação com estrelas(asteriscos). Vamos precisar de dois
arrays, um para armazenar os filmes e o outro para armazenar as
classificações. Digite:
Agora vamos criar a função Classificacao, essa função será composta por um
laço que mostra filme à filme e pede a nota e armazena essa nota no array
classificacao. Digite:
function Classificacao(){
alert("Informe uma classificacao de 1 a 5 estrelas pra cada filme");
for(contador = 0 ; contador < filmes.length ; contador++){
classificacao[contador] = prompt("Informe a quantidade de estrelas pro
filmes " + filmes[contador]);
}
}
Para finalizar vamos criar a função ExibeFilmes. Nessa função temos dois
laços de repetição, um para exibir os filmes, e dentro do laço dos filmes
temos um para exibir os asteríscos, ou seja, para cada filme será montada
uma string com as estrelas(asteriscos) equivalentes à nota informada pelo
usuário. Digite:
function ExibirClassificacoes(){
var numEstrelas = "";
for(contador = 0 ; contador < filmes.length ; contador++){
numEstrelas = "";
for(contadorEstrelas = 1; contadorEstrelas <= classificacao[contador]
; contadorEstrelas++){
numEstrelas += "*";
}
console.log(filmes[contador] + " " + numEstrelas + " estrelas " );
}
}
<script>
var classificacao = [];
var filmes = ["Conan" , "Harry Potter" , "Matrix" , "Crepusculo"];
function Classificacao(){
alert("Informe uma classificacao de 1 a 5 estrelas pra cada filme");
for(contador = 0 ; contador < filmes.length ; contador++){
classificacao[contador] = prompt("Informe a quantidade de estrelas pro
filmes " + filmes[contador]);
}
}
function ExibirClassificacoes(){
var numEstrelas = "";
for(contador = 0 ; contador < filmes.length ; contador++){
numEstrelas = "";
for(contadorEstrelas = 1; contadorEstrelas <= classificacao[contador]
; contadorEstrelas++){
numEstrelas += "*";
}
console.log(filmes[contador] + " " + numEstrelas + " estrelas " );
}
}
</script>
Classificacao();
ExibirClassificacoes();
Dia 30 - Missão: CONCLUÍDA COM SUCESSO
Parabéns!!!
Se você chegou até aqui foi por sua dedicação. Acredito que hoje saiba mais
de JavaScript do que à 30 dias atrás.
A ideia dessa atividade nunca foi só JavaScript, por trás disso teve resiliência,
disposição, perseverança, dedicação, entre outras coisas.
Abra os links abaixo e compreenda o significado desses 30 dias de código (
que na verdade são 100):