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

Dúvida sobre o funcionamento de funções

Durante o curso o professor usou um modelo de código que verificasse se o peso era válido ou não, porém não consegui compreender o uso da ! antes da função validaPeso:

    if (!validaPeso(paciente.peso)) {
        erros.push("Peso é inválido");
    }

    if (!validaAltura(paciente.altura)) {
        erros.push("Altura é inválida");
    }

Sei que o uso da ! significa a negação, mas não consegui compreender bem o uso da função pois quando ele cria a função validaPeso é possível retornar true ou false:

function validaPeso(peso) {

    if (peso >= 0 && peso <= 1000) {
        return true;
    } else {
        return false;
    }
}

Na minha cabeça faria sentido se ele executasse a função independente de ser verdadeira ou falsa a função. Ele "nega" o valor da função validaPeso, por exemplo Se validaPeso == true, lemos que "se validaPeso não é verdade então...". Se validaPeso == false, lemos que "se validaPeso é verdade então...". Esse seria o jeito correto de ler a função ou estou fazendo uma grande confusão?

1 resposta
solução!

Olá Anna, tudo bem?

Você pode usar "!" quando voce quer aplicar um aviso, por exemplo, mediante tal condição.

Digamos que o usuário vai entrar um um site que necessita ter mais de 16 anos. Então temos uma funçao que mediante a idade que o usuário inserir retornará verdadeiro(se é maior de 16 anos) ou falso( se não for maior de 16 anos).

Então se ele for mais de 16 anos, não precisamos fazer nada, pois ele já tem acesso liberado para usar o site. Caso ele tenha menos de 16 anos entao lançamos um aviso informando que ele não tem a idade necessária para usar o site.

Com isso criamos uma verificação que sera apenas para quando o usuário for menor de 16 anos.

Um exemplo rápido:

 fucntion verificaIdadeUsuario(idade) {
    //  Vefirica a idade do usuário

    // retorna true (16+)  

    // retorna false (-16)
}

if( !verificaIdadeUsuário(idade)) {
    alert('Você precisa ter mais de 16 anos para entrar!')
}

Caso o usuário já tenha mais de 16 então não tem porque gerar nenhum tipo de alerta, por exemplo.