Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Desafio: hora da prática

Olá amigos, queria deixar aqui como fiz o desafio: meu repositório https://github.com/MatheusArnou/conversor-de-realXdolar/commits/main/

Uma duvida que tive aqui qual a diferente entre eu iniciar as variáveis antes das funções e colocar elas depois das funções e atribuir valores.

**Primeira versão: **

let valorDolar = 4.97;
let valorReal = gerarValorEmReal();
let taxa = 0;
let valorFinal = 0;

function gerarValorEmReal() {
    let valorEscolhido = parseFloat((Math.random() * 1000 + 1).toFixed(2));
    return valorEscolhido;
}

function conversao(valor) {
    resultado = valor / valorDolar;
    return resultado;
}


let valorConvertidio = conversao(valorReal);

function taxacao() {
    if (valorConvertidio >= 100) {
        taxa = valorConvertidio * 0.05;
        valorFinal = valorConvertidio - taxa;
    } else if (valorConvertidio > 500 && valorConvertidio <= 1000) {
        taxa = valorConvertidio * 0.07;
        valorFinal = valorConvertidio - taxa;
    } else {
        valorFinal = valorConvertidio;
    }
    return valorFinal;
}

console.log(`Você quer converter R$ ${valorReal}, para o dólar americano \n`);
console.log(`A cotação do dólar hoje é de US$ ${valorDolar}\n`);
console.log(`O valor convertido fica em US$ ${valorConvertidio.toFixed(2)}`);
console.log(`Com uma taxa de ${taxa.toFixed(2)}`);
console.log(`Valor final em US$ ${valorFinal.toFixed(2)}`);

Segunda versão:

const valorDolar = 4.97;

function gerarValorEmReal() {
    return parseFloat((Math.random() * 1000 + 1).toFixed(2));
}

function conversao(valor) {
    return valor / valorDolar;
}

function taxacao(valorConvertido) {
    let taxa;
    if (valorConvertido >= 100) {
        taxa = valorConvertido * 0.05;
    } else if (valorConvertido > 500 && valorConvertido <= 1000) {
        taxa = valorConvertido * 0.07;
    } else if (valorConvertido > 1000) {
        taxa = valorConvertido * 0.10;
    } else {
        taxa = 0;
    }
    const valorFinal = valorConvertido - taxa;
    return { valorFinal, taxa };
}

let valorReal = gerarValorEmReal();
let valorConvertido = conversao(valorReal);
let { valorFinal, taxa } = taxacao(valorConvertido);

console.log(`Valor em Reais: ${valorReal}`);
console.log(`Valor Convertido: ${valorConvertido}`);
console.log(`Valor da taxa: ${taxa}`);
console.log(`Valor final após Taxação: ${valorFinal}`);
1 resposta
solução!

Oi, Matheus! Tudo bem?

A diferença entre iniciar as variáveis antes das funções ou dentro delas se refere principalmente ao escopo das variáveis e à organização do código.

Na sua primeira versão, as variáveis valorDolar, valorReal, taxa e valorFinal são iniciadas no início do código, fora de qualquer função. Isso significa que elas têm escopo global e podem ser acessadas e modificadas por qualquer função no código, o que pode ser útil em alguns casos, mas também pode levar a erros difíceis de rastrear se não tivermos cuidado.

Na sua segunda versão, as variáveis valorDolar, valorReal, valorConvertido, valorFinal e taxa são iniciadas dentro das funções ou após elas. Isso significa que elas têm escopo local e só podem ser acessadas e modificadas dentro da função em que foram declaradas, o que torna o código mais seguro e mais fácil de entender, pois é mais fácil rastrear onde cada variável é usada e modificada.

Em resumo, iniciar variáveis dentro de funções (quando possível) geralmente é uma boa prática, pois limita o escopo das variáveis e torna o código mais seguro e mais fácil de entender. No entanto, há casos em que as variáveis globais são necessárias, então é uma questão de entender o que é melhor para cada código específico.

Espero ter ajudado! Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓