1
resposta

Conversão alternativa de string via prompt para número e tempo de processamento

A colega Gabriela Alvarenga Arouca de Siqueira (9.3k xp, 5 posts), fez a seguinte pergunta, marcada como solucionada: "Oi pessoal, tudo bem? Na aula que estou vendo, o professor diz que é uma boa prática aplicar o parseInt antes do comando prompt quando a chave de entrada for um número. Contudo, se não usarmos o comando, teremos uma concatenação de qualquer forma. Por isso me surgiu a dúvida, sabem me dizer se tem uma outra forma de fazer isso sem o uso desse comando?"

Durante a aula o prof Flávio falou/mostrou que "*" e "/" fazem a conversão da string numerada em número, então tive a idéia de multiplicar ou dividir a variável capturada pelo prompt, pelo elemento neutro, ficando da seguinte maneira:

<meta charset="UTF-8">

<script>
    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }

    var convidados = prompt("Número de convidados")
    convidados = convidados*1;
    var vips = prompt("Número de convidados VIP's")
    vips = vips/1; //» jeito alternativo de converter para inteiro sem usar a função"parseInt"
    /*
    var convidados = parseInt(prompt("Número de convidados"));
    var vips = parseInt(prompt("Número de convidados VIP's"));
    */
    var total = convidados + vips;

    mostra("O total de convidados é " + total);

</script>


<!
21dez20
>

Isso ilustra um jeito alternativo de fazer a conversão para inteiro, respondendo à curiosidade da Gabriela. Testei para float e também deu certo. Minha dúvida é se há algum ganho de velocidade de processamento ao se fazer economia de funções, como foi feito aqui, fazendo desnecessário o "parseInt". Claro que num programa pequeno e simples como esse, a diferença, provavelmente deve ser irrelevante, por isso minha dúvida é considerando um programa bem maior e complexo; se esta "conversão indireta" representa algum ganho.

(1k9, 280)

1 resposta

Olá Raphael, tudo bem?

Essa conversão não representa nenhum ganho. Mas é uma excelente forma para treinar saídas alternativas.

Na sua pergunta você menciona sobre ser um programa maior e complexo, se falarmos sobre código limpo, organizado e com boas práticas, a forma que utilizou acaba saindo disso. Na primeira vez que bati o olho no seu código não consegui entender o que estava se passando.

Continue praticando, e qualquer dúvida estamos por aqui :)

Um forte abraço!