Bem-vindo à sua Introdução ao JavaScript!

Nesta aula, vamos explorar os três pilares fundamentais do JavaScript: Variáveis, Arrays e Objetos. Entender esses conceitos é o primeiro passo para se tornar um desenvolvedor web.

1. Variáveis: Os Contêineres de Dados

Pense em variáveis como caixas etiquetadas onde você pode guardar informações. Em JavaScript, temos três maneiras principais de "criar" essas caixas: let, const e var.

As variáveis podem guardar diferentes tipos de dados, como textos (string), números (number) e valores de verdadeiro/falso (boolean).

Exemplo prático:

// Declarando variáveis
let nomeDoPersonagem = "Link"; // Uma string (texto)
const jogo = "The Legend of Zelda"; // Uma constante
let coracoesDeVida = 3; // Um número
let temAEspadaMestra = false; // Um booleano (falso)

// Modificando uma variável 'let'
coracoesDeVida = coracoesDeVida + 1; // Agora Link tem 4 corações

// Exibindo no console do navegador
console.log("Personagem:", nomeDoPersonagem);
console.log("Vida atual:", coracoesDeVida);
console.log("Possui a Espada Mestra?", temAEspadaMestra);

2. Arrays: Listas Organizadas

Um array é simplesmente uma lista ordenada de itens. É perfeito para guardar coleções de dados, como uma lista de tarefas, um inventário de itens ou uma lista de usuários.

Criamos arrays usando colchetes [] e separamos os itens com vírgulas. O primeiro item de um array está sempre na posição 0.

Exemplo prático:

// Criando um array com os itens do inventário
let inventario = ["Espada", "Escudo", "Arco e Flecha"];

// Acessando um item pelo seu índice (posição)
console.log("Primeiro item:", inventario[0]); // -> "Espada"
console.log("Terceiro item:", inventario[2]); // -> "Arco e Flecha"

// Adicionando um item ao FINAL do array
inventario.push("Bomba");
console.log("Inventário atualizado:", inventario); // -> ["Espada", "Escudo", "Arco e Flecha", "Bomba"]

// Removendo o ÚLTIMO item do array
let itemRemovido = inventario.pop();
console.log("Item removido:", itemRemovido); // -> "Bomba"
console.log("Inventário final:", inventario);

// Verificando o tamanho do array
console.log("Total de itens:", inventario.length); // -> 3

3. Objetos: Descrevendo Entidades Complexas

Objetos nos permitem representar coisas mais complexas do mundo real. Eles funcionam com um sistema de chave-valor. Por exemplo, para descrever um "carro", podemos ter as chaves "cor", "marca" e "ano", cada uma com seu respectivo valor.

Criamos objetos usando chaves {}. Para acessar, alterar ou adicionar propriedades, usamos a notação de ponto (objeto.propriedade).

Exemplo prático:

// Criando um objeto para representar um usuário
const usuario = {
  nome: "Zelda",
  reino: "Hyrule",
  idade: 17,
  possuiTriforceDaSabedoria: true,
  habilidades: ["Magia", "Arquearia", "Liderança"]
};

// Acessando as propriedades do objeto
console.log("Nome da usuária:", usuario.nome);
console.log("Reino:", usuario.reino);
console.log("Primeira habilidade:", usuario.habilidades[0]); // Podemos ter arrays dentro de objetos!

// Modificando uma propriedade existente
usuario.idade = 117; // A idade canônica dela é mais complexa :)
console.log("Idade atualizada:", usuario.idade);

// Adicionando uma nova propriedade
usuario.email = "zelda@hyrule.gov";
console.log("Email adicionado:", usuario.email);

// Vendo o objeto completo
console.log(usuario);

Desafios Práticos

Agora é sua vez de codificar! Tente resolver os desafios abaixo no console do seu navegador.

Variáveis e Tipos de Dados

Desafio 1: Perfil de Usuário

Crie variáveis para guardar as seguintes informações de um usuário: nome (string), idade (number), cidade (string) e se ele é assinante (boolean). Depois, exiba a seguinte frase no console, usando as variáveis: "[Nome], de [idade] anos, mora em [cidade] e [é/não é] assinante."

Desafio 2: Calculadora de Dano

Declare uma constante danoBase com valor 10. Declare uma variável danoBonus com valor 5. Calcule o danoTotal somando as duas variáveis e exiba o resultado no console.

Desafio 3: Status de Login

Declare uma variável isLogado e atribua a ela o valor true. Em seguida, declare uma constante mensagemBoasVindas. Usando uma operação lógica, exiba no console a mensagem de boas-vindas apenas se isLogado for verdadeiro.

Arrays

Desafio 1: Lista de Compras

Crie um array chamado listaDeCompras com três itens. Adicione um novo item ao final da lista. Depois, remova o primeiro item da lista. Por fim, exiba a lista final e seu tamanho (length) no console.

Desafio 2: Fila de Atendimento

Simule uma fila (o primeiro a entrar é o primeiro a sair). Crie um array fila com três nomes. Adicione mais dois nomes ao final da fila. Depois, "atenda" o primeiro da fila, removendo-o. Exiba quem foi atendido e como ficou a fila depois.

Desafio 3: Top 3 Músicas

Crie um array topMusicas com suas 3 músicas favoritas. Acesse e exiba no console a música que está na posição número 2 (lembre-se que os índices começam em 0). Troque a música da primeira posição por uma nova música de sua escolha. Exiba o array atualizado.

Objetos

Desafio 1: Cadastro de Livro

Crie um objeto chamado livro para representar um livro, com as propriedades: titulo (string), autor (string), anoPublicacao (number) e genero (string). Exiba o título e o autor do livro no console.

Desafio 2: Ficha de Personagem de RPG

Crie um objeto personagem com nome, classe e nivel. Depois de criar o objeto, adicione uma nova propriedade chamada equipamentos, que deve ser um array com dois itens (ex: "Espada Longa", "Armadura de Couro"). Modifique o nivel do personagem, aumentando-o em 1. Exiba o objeto completo no console.

Desafio 3: Detalhes do Produto

Crie um objeto produto com nome e preco. Adicione a ele uma propriedade detalhes, que será outro objeto contendo fabricante (string) e modelo (string). Acesse e exiba no console o nome do produto, seu preço e o nome do fabricante.