Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Lista de exercícios 8 - JavaScript

// Lista de exercicios 8 

//1. Destructuring em objetos
const pessoa1 = {
    nome: 'Brenda',
    idade: 35,
    email: 'brenda@gmail.com',
}
const { nome, idade, email } = pessoa1
// console.log(nome,idade,email);
console.log(nome);
console.log(idade);
console.log(email);

//2. Destructuring em arrays
const linguagens = ['Python', 'JavaScript', 'React']
const [ling1, ling2, ling3] = linguagens;
console.log(ling1, ling2, ling3);

// 3. Rest operator em função

function somar(...numeros) {
    let total = 0;
    for (let i = 0; i < numeros.length; i++) {
        total += numeros[i];
    }
    return total;
}
console.log(somar(5, 10, 15));
console.log('Total:', somar(3, 8, 12, 25));
console.log('Total:', (somar(1, 4, 6, 9, 2, 5, 14, 58)));

//4. Spread operator com arrays
const frutas = ['Uva', 'Abacaxi', 'Morango'];
const frutas2 = ['Limão', 'Maracujá', 'Banana', 'Pitaya'];
console.log(frutas);
console.log(frutas2);
const todasFrutas = [...frutas, ...frutas2];
console.log(todasFrutas);

//5. Spread operator com objetos
const dados1 = {
    nome: 'Maria Carla',
}
const dados2 = {
    idade: 13,
}
const informacoes = { ...dados1, ...dados2 };
console.log(informacoes);

//6. Função com parâmetro default
//function saudacao(nome) {
//    if (nome!=null) {
//         console.log('Olá,',nome,'!');
//    }else {
//        console.log('Olá, visitante!');
//    }
//}
//saudacao();
//saudacao('Carla');

function saudacao(nome = 'Visitante') {
    console.log('Olá,', nome, '!');
}
saudacao();
saudacao('Carla');

//7. Trabalhando com datas
const agora = new Date();
console.log(agora.toLocaleDateString('pt-BR'));

//8. Modularização com export/import
import { soma } from "./somaExercicios8.js";
console.log(soma(6, 3));

//9. Objeto com função construtora
function livro(titulo, autor) {
    this.titulo = titulo;
    this.autor = autor;
}
 const livro1 = new livro('As crônicas de Nárnia.','C. S. Lewis');
const livro2 = new livro('Harry Potter e a pedra filosofal.','J. K. Rowling');

console.log(livro1);
console.log(livro2);

// 10. Método no objeto
function livros(titulos, autores) {
    this.titulos = titulos;
    this.autores = autores;
    this.descrever = function () {
      return 'Gosto muito do livro '+this.titulos+' de '+this.autores+'.'  
    }
}
const livro3 = new livros ('Verity','Colleen Hoover');
console.log(livro3.descrever());
1 resposta

Oi, Stephanie! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu exercício ficou bem organizado e mostra que você praticou vários recursos modernos do JavaScript, como destructuring, rest, spread, parâmetros padrão, datas, import/export e funções construtoras. Um ponto que chamou atenção foi o uso correto de ...numeros na função somar, pois isso deixa a função flexível para receber quantos valores forem necessários.

Uma dica interessante para o futuro é usar nomes de funções construtoras com letra inicial maiúscula, como Livro, porque essa é uma convenção comum em JavaScript e ajuda na leitura do código. Veja este exemplo:

function Livro(titulo, autor) {
  this.titulo = titulo;
  this.autor = autor;
}

const livro1 = new Livro('Verity', 'Colleen Hoover');

console.log(livro1);

Esse código cria um modelo chamado Livro e depois gera um novo objeto com new Livro(...). Você também pode testar adicionar um método descrever dentro dessa função para praticar ainda mais. Qual desses recursos você achou mais interessante de usar: destructuring, spread ou rest?

Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!